Подтвердить что ты не робот

Умные указатели в Qt

Как было написано здесь Qt до сих пор имеет 8 специализированных классов интеллектуальных указателей. Похоже, это все, что вам когда-либо понадобится. Однако, чтобы использовать любой из этих умных указателей, ваш класс должен быть получен из QObject, что не всегда удобно. Существуют ли другие реализации интеллектуальных указателей в Qt, которые работают с произвольными классами?

4b9b3361

Ответ 1

Многие классы Qt выводятся из QObject, и хотя некоторые из встроенных классов интеллектуальных указателей связаны с QObject (или QSharedData), QSharedPointer и QScopedPointer позволяют показывать указатели на что-либо.

Кроме того, вы найдете умные шаблоны указателей в Boost:

  • scoped_ptr - Простое владение отдельными объектами. Noncopyable.
  • scoped_array - Простое владение массивами. Noncopyable.
  • shared_ptr - Владение объектами делится между несколькими указателями.
  • shared_array - Владение массивом разделяется между несколькими указателями.
  • weak_ptr - Не владеющие наблюдателями объекта, принадлежащего shared_ptr.
  • intrusive_ptr - Совместное владение объектами со встроенным числом ссылок.