Qt中的智能指针

时间:2009-09-26 16:46:31

标签: c++ qt smart-pointers

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

1 个答案:

答案 0 :(得分:18)

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

除此之外,你会在smart pointer templates中找到一些Boost

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