例如,我正在尝试使用此递归解构器删除二叉树:
~BinTreeNode() {
delete left;
delete right;
// delete this; <- i'm assuming this is implicit, so i don't need to include it
}
如果我做delete root;
,其中root是根节点,那么整个树的内存是否会被成功释放?
答案 0 :(得分:8)
是。析构函数的主体在释放内存之前发生。你不需要删除它,因为你已经......所以如果你做了,那么就会发生不好的事情。