Я искал ответ на этот вопрос и не смог его найти. Рассмотрим следующий код:
struct Foo
{
int *bar;
Foo(int barValue) : bar(new int(barValue)) {}
~Foo() { do_this(); }
void do_this() { delete bar; bar = nullptr; }
};
int main()
{
const Foo foo(7);
}
do_this()
не может быть вызван для объекта const
, поэтому я не мог бы сделать что-то вроде foo.do_this()
. В некоторых ситуациях было бы do_this()
вызвать do_this()
вне деструктора, поэтому я не хочу просто включать код в определение деструктора. Поскольку do_this()
изменяет переменную-член, я не могу объявить ее как const
.
Мой вопрос: сможет ли деструктор вызвать do_this()
для объекта const
при уничтожении объекта?
Я попробовал это и не получил никаких ошибок, но хочу, чтобы я не вызывал утечку памяти после завершения моей программы.