Как было написано здесь Qt до сих пор имеет 8 специализированных классов интеллектуальных указателей. Похоже, это все, что вам когда-либо понадобится. Однако, чтобы использовать любой из этих умных указателей, ваш класс должен быть получен из QObject, что не всегда удобно. Существуют ли другие реализации интеллектуальных указателей в Qt, которые работают с произвольными классами?
Умные указатели в Qt
Ответ 1
Многие классы Qt выводятся из QObject, и хотя некоторые из встроенных классов интеллектуальных указателей связаны с QObject (или QSharedData), QSharedPointer и QScopedPointer позволяют показывать указатели на что-либо.
Кроме того, вы найдете умные шаблоны указателей в Boost:
- scoped_ptr - Простое владение отдельными объектами. Noncopyable.
- scoped_array - Простое владение массивами. Noncopyable.
- shared_ptr - Владение объектами делится между несколькими указателями.
- shared_array - Владение массивом разделяется между несколькими указателями.
- weak_ptr - Не владеющие наблюдателями объекта, принадлежащего shared_ptr.
- intrusive_ptr - Совместное владение объектами со встроенным числом ссылок.