Qt中的智能指针

ale*_*xkr 18 c++ qt smart-pointers

就像它已经写在这里 Qt到目前为止有8个特定的智能指针类.它看起来就像你需要的一切.但是,为了使用这些智能指针中的任何一个,您的类必须从QObject派生,这并不总是方便的.在Qt中是否有其他智能指针实现可以与任意类一起使用?

Pau*_*xon 18

许多Qt类派生自QObject,虽然一些内置的智能指针类与QObject(或QSharedData)相关,但QSharedPointerQScopedPointer模板似乎允许指向任何东西.

除此之外,你会在Boost中找到一些智能指针模板:

  • scoped_ptr - 单个对象的简单唯一所有权.不可复制.
  • scoped_array - 数组的简单唯一所有权.不可复制.
  • shared_ptr - 多个指针之间共享的对象所有权.
  • shared_array - 多个指针之间共享的数组所有权.
  • weak_ptr - shared_ptr拥有的对象的非拥有观察者.
  • intrusive_ptr - 具有嵌入引用计数的对象的共享所有权.

  • 是的,自动内存管理,eew,恶心.如果没有内存泄漏,我们如何信任C++应用程序?;) (65认同)
  • 哇,我仍然使用类似"C with classes"的C++(那就是1990年左右的C++).这是有效的,所有这些丑陋难以理解的智能指针疯狂让我生病. (8认同)