如果智能指针指向的对象会自杀会发生什么?

dan*_*ani 3 smart-pointers c++11

我有对象定义他们自己的"存在权".因此他们有可能自杀.持有它的智能指针会发生什么?它是悬空还是指针识别出对象自身被破坏并因此自动指向NULL?

从我将使用的对象外部ptr.reset().但是我能从对象内部做些什么呢?

Pup*_*ppy 7

可怕的,可怕的事情会发生.智能指针将不知道刚刚发生了什么,并盲目地尝试在提示上摧毁对象.这基本上意味着你搞砸了.拥有自己的物品通常是非常值得怀疑的,但如果你自己拥有,那么你绝不能拥有外部拥有权.这直接包括智能指针.

正确的所有权语义意味着您必须拥有一个且只有一个明确的所有者.在例如shared_ptr的情况下甚至是这样,其中对象由引用计数有效地拥有.

一个自有的对象必须清楚它拥有自己的事实,而不是外部拥有.