你好,
我有关于智能指针的疑问。
我从我的一位 friend 那里听说,智能指针几乎总是可以替代原始指针。 但是当我问他还有哪些智能指针不能替代原始指针的情况时,我没有从他那里得到答案。
谁能告诉我他们何时何地不能替换原始指针?
最佳答案
- 将指针传递给遗留 API。
- 引用计数树结构中的反向引用(或任何循环情况)。这是有争议的,因为您可以使用弱引用。
- 遍历一个数组。
还有很多情况下您可以使用智能指针但可能不想使用,例如:
- 一些小程序旨在泄露所有内容,因为不值得自己弄清楚如何清理的复杂性。
- 诸如解析器之类的细粒度批处理算法可能会从预先分配的内存池中进行分配,然后在完成时直接清除整个池。将智能指针指向这样的池通常毫无意义。
关于c++ - 智能指针 - 无法替代原始指针的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593173/