Интеллектуальные указатели в QT [дубликат]

Больше, чем что-либо еще, пригодность для обслуживания делает код допускающим повторное использование.

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

, Если Вы намереваетесь делать повторно используемый код, Вы часто пробуете для принятия во внимание требований для поведения, которое могло бы требоваться в будущих проектах. Неважно, как хороший Вы становитесь в этом, Вы найдете, что понимаете эти соответствующие требованиям завтрашнего дня требования превратно.

, С другой стороны, если Вы запускаете с пустых требований текущего проекта, Вы найдете, что Ваш код может быть чистым и трудным и изящным. Когда Вы работаете над другим проектом, для которого нужна схожая функциональность, Вы естественно адаптируете свой исходный код.

я предлагаю смотреть на лучшие практики для Вашего выбранного языка программирования / парадигма (например, Шаблоны и ТЕЛО для Java / типы C#), Наклон / Гибкая литература программирования, и (конечно) книга "Завершенный Код". Понимание преимуществ и недостатков этих подходов улучшит Вашу практику кодирования никакой конец. Весь Ваш код тогда станет reausable - но 'случайно', а не дизайном.

кроме того, посмотрите здесь: Пишущий Удобный в сопровождении Код

18
задан Seagull 10 October 2012 в 18:32
поделиться

1 ответ

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

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

  • scoped_ptr - Простая подошва владение единичными объектами. Не копируемый.
  • scoped_array - Простое единоличное владение массивами. Некопируемый.
  • shared_ptr - Владение объектом совместно используется несколькими указателями.
  • shared_array - Владение массивом совместно используется несколькими указателями.
  • weak_ptr - Наблюдатели, не являющиеся собственниками объекта, принадлежащего shared_ptr .
  • intrusive_ptr - Совместное владение объектами со встроенным счетчиком ссылок.
18
ответ дан 30 November 2019 в 09:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: