Я искал ответ на этот вопрос и не смог его найти. Рассмотрим следующий код:
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 при уничтожении объекта?
Я попробовал это и не получил никаких ошибок, но хочу, чтобы я не вызывал утечку памяти после завершения моей программы.