Я знаю, что я могу объявить деструктор =delete
или private
, чтобы программа не могла неявно удалять объект в конце области видимости. Я также знаю, что если он частный, у меня может быть функция-член, которая может явным образом вызвать деструктор, когда я его назову: void kill() { this–>~A(); }
Мои вопросы:
-
Почему я хотел бы предотвратить неявное разрушение? Просьба привести пример
-
Что бы сделать
=delete
? Убеждается ли, что деструктор никогда не работает? Таким образом, объект будет существовать вечно вне его сферы?