【发布时间】:2012-12-27 05:57:04
【问题描述】:
如果我有
Class *a1 = new Class();
Class *b1 = a1;
delete b1;
delete a1; //this will give a double free or corruption message;
如果我删除指针b,它和删除指针a一样吗?由于两者都指向同一个 Class 实例。那么,如何将 a1 的实例复制到 b1 中,这样当我删除 b1 时,a1 不会被删除。
Class *a1 = new Class();
Class *b1 = a1;
//how do I duplicate the instance a1 is pointing
//so that when I delete b1, a1 still exists.
delete b1;
delete a1; //this is still valid
谢谢。
【问题讨论】:
-
不确定是否需要所有指针,但
Class *b1 = new Class(*a1);应该这样做。 -
确保您的复制构造函数正常并从 *a1 创建一个新副本。
-
这很容易@.@ 谢谢