gpt4 book ai didi

c++ - 测试对象是否被删除

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:25 31 4
gpt4 key购买 nike

请看下面的代码:

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 指针来确定对象是否被删除(或未被删除)?

最佳答案

据我所知,处理这种情况的典型方法是使用引用计数指针,就像(例如)COM 所做的那样。在 Boost 中,有一个 shared_ptr 模板类可以提供帮助(http://www.boost.org/doc/libs/1_42_0/libs/smart_ptr/shared_ptr.htm)。

关于c++ - 测试对象是否被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2758014/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com