C++对象生命周期自动化管理
怎么创建以及何时需要创建对象,这是个较简单的问题。困难的是什么时候删除对象。不像JAVA,swift等较新的语言,基于一些原因,C++没有内置GC。对这个问题,现在C++有比GC更好的解决办法,也就是智能指针。
shared_ptr和weak_ptr可以完美实现对象生命周期的自动化管理,比GC性能高的多。
当某个struct或class需要独立自保活时,可按如下方式
struct tagXXX: public enable_shared_from_this< tagXXX >
{
shared_ptr<tagXXX > mSelfRef;
…
};
auto obj=make_shared<tagXXX>();
obj->mSelfRef= obj->shared_from_this();
注意在使用完obj后要重置obj->mSelfRef=nullptr;