shared_ptr
使用引用计数来确定何时销毁对象。
请看下面的代码:
int main() {
std::shared_ptr<int> pt = std::make_shared<int>(3);
int *pt2 = pt.get();
cout << "reference count " << pt.use_count() << endl;
pt = 0;
cout << *pt2;
};
当我将pt设置为0后,引用计数应该变为0,并且对象应该被销毁。但是我仍然可以使用pt2访问它。在我的情况下,结果是正确的,但我猜这只是幸运。那么这是否意味着如果程序员想做一些愚蠢的事情,引用计数机制仍然无法使其100%安全?