阅读 Alexandrescu 和 wikipipidia 我看到指针和引用计数器存储在堆上。然后提到引用计数效率低下,因为必须在堆上分配计数器?为什么不存储在堆栈中?
最佳答案
因为一旦智能指针的当前实例超出范围,您就会丢失它。
智能指针用于模拟动态分配的自动存储对象。智能指针本身是自动管理的。因此,当一个人被摧毁时,它存储在自动存储中的任何东西也会被摧毁。但是您不想丢失引用计数器。所以你将它存储在动态存储中。
关于c++ - 为什么 C++ 智能指针实现将引用计数器与指针一起保存在堆上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9283230/