如何知道我的对象在c++中是否活着
How to know if my object is alive in C++?
除了在类中声明静态私有成员并在构造函数中自增,在析构函数中自减之外,还有什么方法可以知道我的对象是活的吗?提前感谢。
您还可以使用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
来检查你的对象是否"活着"
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 什么 /可以/ 你从一个函数返回. 并期望它在到达时还活着?
- 全局变量在 C++ 中是否显着提高了编译速度?
- 检查分离的线程是否还活着?
- C++:这两种将数字写入矩阵的方式之间是否存在显着的速度差异?
- 活着的邻居细胞未正确计数
- 写一个活着的线程
- Lua 关机双免费,关机期间 Lua 线程还活着?
- Android NDK:保持活着的C 对象
- C++线程在kill之后仍然活着
- MFC还活着吗
- adobe ASL(亚当和夏娃)还活着吗?什么是替代品
- 我试着去理解OOP,想知道我的函数是否完成得正确
- 打破严格的混叠,并活着讲述它
- 如何知道我的对象在c++中是否活着
- 我是否应该使用"if"语句统一两个相似的内核,冒着性能损失的风险?
- 有史以来活着的恐龙数量最多