看看下面的代碼,請:測試,如果對象被刪除
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