【发布时间】:2011-04-01 17:17:24
【问题描述】:
就在我以为我的指针向下时,看起来我还是有点困惑。我正在写 operator= 重载,所以我想释放内存然后分配新的。我正在处理一个四叉树类,其中每棵树都有一个指向根节点的指针,一个根节点有 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吗?