В С++, если мы определяем деструктор класса как:
~Foo(){
return;
}
при вызове этого деструктора будет уничтожен объект Foo
или
явное возвращение из деструктора означает, что мы никогда не хотим его уничтожить.
Я хочу сделать так, чтобы какой-то объект был уничтожен только через деструктор других объектов, т.е. только тогда, когда другой объект готов к уничтожению.
Пример:
class Class1{
...
Class2* myClass2;
...
};
Class1::~Class1(){
myClass2->status = FINISHED;
delete myClass2;
}
Class2::~Class2(){
if (status != FINISHED) return;
}
Я искал в Интернете и, похоже, не нашел ответа на мой вопрос. Я также попытался выяснить это сам, перейдя через некоторый код шаг за шагом с отладчиком, но не могу получить окончательный результат.