c++ - умных - Умные указатели в Qt



умные указатели c++17 (1)

На этот вопрос уже есть ответ здесь:

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


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

Помимо этого, вы найдете несколько шаблонов умных указателей в Boost :

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




smart-pointers