Отказ от ответственности: Я знаю, что это плохой дизайн, я просто задаю вопрос из любопытства, чтобы попытаться получить более глубокое знание о том, как деструктор работает на С++.
В С# можно написать: GC.KeepAlive(this)
в деструкторе класса (см. ниже), и это будет означать, что объект все еще будет сохранен в памяти даже после завершения вызова деструктора.
Позволяет ли дизайн С++ восстанавливать объект из деструктора, аналогичный описанному выше алгоритму С#?
Изменить. Как указано в ответе ниже, GC.ReRegisterForFinalize()
более тесно связан с вопросом, чем GC.KeepAlive(this)
.