Classes and class hierarchies
C.32
Если класс имеет сырой указатель (`T*`) или ссылку (`T&`), рассмотрите, может ли он быть владельцем
Причина
Существует много кода, в котором вопрос владения не специфицирован.
Пример
class legacy_class
{
foo* m_owning; // Плохо: замените на unique_ptr<T> или owner<T*>
bar* m_observer; // OK: оставить
}
Единственный способ определить владение — анализ кода.
Примечание
Владение должно быть чётко указано в новом коде (и отрефакторенном легаси-коде) согласно R.20 для владеющих указателей и R.3 для невладеющих указателей. Ссылки никогда не должны владеть R.4.
Контроль
Смотрите на инициализацию сырых указателей-членов и ссылок-членов и проверяйте, используется ли выделение памяти.