就像这里写的一样, Qt 到目前为止有 8 个专门的智能指针类。看起来这就是您所需要的一切。但是,为了使用这些智能指针中的任何一个,您的类必须从 QObject 派生,这并不总是很方便。Qt 中是否有其他可用于任意类的智能指针实现?
问问题
28113 次
1 回答
18
许多 Qt 类是从 QObject 派生的,虽然一些内置的智能指针类与 QObject(或 QSharedData)相关,但QSharedPointer和QScopedPointer模板似乎允许指向任何东西的指针。
除此之外,您还会在Boost中找到一些智能指针模板:
- scoped_ptr - 单个对象的简单唯一所有权。不可复制。
- scoped_array - 数组的简单唯一所有权。不可复制。
- shared_ptr - 在多个指针之间共享的对象所有权。
- shared_array - 在多个指针之间共享的数组所有权。
- weak_ptr - shared_ptr 拥有的对象的非拥有观察者。
- intrusive_ptr - 具有嵌入式引用计数的对象的共享所有权。
于 2009-09-26T16:51:23.347 回答