Допустимо ли напрямую вызывать (виртуальный) деструктор?

В ответе Райан напрямую вызывает виртуальный деструктор. Я тестировал код в VS2010, и он правильно вызывает все деструкторы (проверено с помощью операторов регистрации). Действительно ли это действительно так? Каковы проблемы, недостатки или даже положительные стороны такого подхода?

Я могу думать об этом только как о способе действительно принудительного сброса фактического типа, даже если они не отменяют виртуальный reset , так как они, по крайней мере, должны очистить свои деструкторы.

Кроме того, какие именно побочные эффекты вызывает вызов деструктора? Будет ли использование объекта неопределенным после такого вызова деструктора? Что, если его немедленно инициализировать повторно с помощью вызова new (this) MyClass (); ?

7
задан Community 23 May 2017 в 12:23
поделиться