jus*_*tik 4 c++ testing object delete-operator
请查看以下代码:
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
}
}
Run Code Online (Sandbox Code Playgroud)
有两个指针n1,n2指向同一个对象.我想检测是否使用n1指针测试删除了n2.但是这个测试结果是例外.
有没有办法如何使用n1指针确定对象是否被删除(或未被删除)?
Gui*_*ici 11
据我所知,处理这种情况的典型方法是使用引用计数指针,例如COM的方式.在Boost中,有一个可以提供帮助的shared_ptr模板类(http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/shared_ptr.htm).