Иногда, когда объект создается с указателем на другой объект, это означает, что он отвечает за уничтожение другого объекта при уничтожении ... в других случаях это не так.Иногда бывают даже случаи, когда он может варьироваться в зависимости от обстоятельств, а не от фиксированных правил для каждого класса.
Очень простой пример:
class A
{
private:
B *b;
public:
A(B *_b)
{
if(_b)b = _b; //A should NOT destroy b
else b = new B(); //A should destroy b
}
}
В A::~A()
вам в итоге придетсязнать.Конечно, у вас может быть небольшой логический флаг, но мне интересно, есть ли здесь какой-нибудь хорошо используемый шаблон?Или даже название этого поведения, которое я могу добавить в комментарии к коду, чтобы другой разработчик имел больше подсказок?