18

就像这里写的一样, Qt 到目前为止有 8 个专门的智能指针类。看起来这就是您所需要的一切。但是,为了使用这些智能指针中的任何一个,您的类必须从 QObject 派生,这并不总是很方便。Qt 中是否有其他可用于任意类的智能指针实现?

4

1 回答 1

18

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

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

  • scoped_ptr - 单个对象的简单唯一所有权。不可复制。
  • scoped_array - 数组的简单唯一所有权。不可复制。
  • shared_ptr - 在多个指针之间共享的对象所有权。
  • shared_array - 在多个指针之间共享的数组所有权。
  • weak_ptr - shared_ptr 拥有的对象的非拥有观察者。
  • intrusive_ptr - 具有嵌入式引用计数的对象的共享所有权。
于 2009-09-26T16:51:23.347 回答