看看下面的代码,请:测试,如果对象被删除
class Node
{
private:
double x, y;
public:
Node (double xx, double yy): x(xx), y(yy){}
};
int main()
{
Node *n1 = new Node(1,1);
Node *n2 = n1;
delete n2;
n2 = NULL;
if (n1 != NULL) //Bad test
{
delete n1; //throw an exception
}
}
有两个指针N1,N2指向同一个对象。我想检测是否使用n1指针测试删除了n2。但是这个测试会导致异常。
有什么办法如何确定对象是否被删除(或未被删除)使用n1指针?
+1:boost :: shared_ptr真的很有效率。你甚至不需要自己调用delete,并且可以为所指向的值提供你自己的析构函数。 – ereOn 2010-05-03 12:50:30