我只是想知道已经开发的新类型的指针完全超过旧版本(或者您可能认为存在内存泄漏问题的指针版本)
我不认为常规指针已经死了但是最近我遇到了auto-ptr,然后我开始了解一下有关shared_ptr和unique_ptr添加到C ++ ox.I不能使用它们(shared_ptr和unique_ptr)虽然因为我有视觉C ++ 2008。
auto_ptr还完全由unique_ptr和shared_ptr接管吗?
请提供一些见解。
答案 0 :(得分:4)
如果您不拥有它指向的对象,则原始指针仍然有用。 auto_ptr
被正式弃用(是的,新代码几乎已经死了)。 VS2008虽然提供了shared_ptr
作为TR1的一部分,但总有Boost。我现在认为在我的C ++生活中没有任何其他智能指针需要。
答案 1 :(得分:1)
Qt提供QSharedDataPointer,它有助于提供写时复制功能。它的侵入性,在某种意义上它只接受从QSharedData
派生的类型而不是任何任意数据。我自己的实用程序对象库包含deep_ptr
类型,其中包含复制构造函数,用于复制其存储的数据,而不仅仅是对指针进行别名。它专门用作实现Pimpls的一种方法,这样我就不必费心去实现Big 3了,但仍然可以获得开箱即用的价值语义。
但实际上,shared_ptr
,weak_ptr
和unique_ptr
确实提供了所需的几乎所有功能。