就在我以为我有指针的时候,看起来好像还是有点困惑。我正在写运算符=重载,所以我想取消分配内存然后分配新的。我正在处理一个四叉树类,其中每棵树都有一个指向根节点的指针,而一个根节点有4个指向4个孩子的指针,而每个树有4个孩子。所以operator =应该只是复制另一个树的根并返回它。所以在释放之后,我想要分配新的内存和分配。所以,我做的:带指针的函数
root=new QtreeNode;
root=nodeCopier(*(source.root));
这是我的nodeCopier签名:
QNode nodeCopier(const QtreeNode & n) {
QtreeNode tempNode;
//stuff
return tempNode;
}
但后来我得到这个错误错误:
no matching function for call to
Qtree::nodeCopier(Qtree::QtreeNode* const&)
qtree.h:92: note: candidates are: Qtree::QtreeNode Quadtree::nodeCopier(const Qtree::QtreeNode&)
我该如何解决这个问题?
你可以发布你的'QtreeNode'类的声明吗? – 2011-04-01 17:28:46