的定义some_class
是:
class some_class
{
// stuff
public:
~some_class()
{
delete dynamic_three;
}
private:
classA one;
classB two;
classC* dynamic_three;
}
当一个对象的生命周期结束时,它的销毁是:(1)调用它的析构函数和(2)按照它们在类定义中声明的顺序(=内存中的位置)销毁它的子对象。
但是,如果我有这样的事情:
auto* ptr = new some_class();
// more stuff
ptr->~some_class(); // l. X
步骤(2)也实现了?我的意思是,在第 X 行中,子对象的析构函数是否也被调用或仅在some_class
析构函数的主体中执行?