我试图验证我对 C++ 析构函数的理解。
如果我自己不编写一个,我已经读过很多次 C++ 提供了一个默认的析构函数。但这是否意味着如果我确实编写了一个析构函数,编译器仍然不会提供堆栈分配的类字段的默认清理?
我的直觉是,唯一理智的行为是所有类字段都被销毁,无论我是否提供自己的析构函数。在这种情况下,我读了很多次的声明实际上有点误导,可以更好地表述为:
“无论你是否编写自己的析构函数,C++ 编译器总是编写一个默认的类似析构函数的序列来释放你的类的成员变量。然后你可以通过定义你自己的析构函数来指定额外的释放或其他任务”
这个对吗?