除了在类中声明静态私有成员并在构造函数中自增,在析构函数中自减之外,还有什么方法可以知道我的对象是活的吗?提前感谢。
您还可以使用shared_ptr/weak_ptr对STL中的类进行非侵入性操作。
stl::shared_ptr<YourClass> p = stl::make_shared(...); // holds a strong reference to your type
stl::weak_ptr<YourClass> wp(p);
cout << wp.use_count(); // "1"
p.reset();
cout << wp.use_count(); // "0"
你的意思是知道你是否至少有一个实例化的类?静态计数器几乎是最好的方法。这就是我怎么做的。:)
如果所讨论的代码存在于非静态方法中,那么根据定义,您的对象是"活的"——只要您没有做一些非常规的事情,例如从方法中删除它。
如果你是这样做(这是不推荐的,除非你真的知道你在做什么),然后确保你的NULL
之后立即出指针,并始终确保比较this
与NULL
来检查你的对象是否"活着"