1、基类中含有析构函数的子类,编译器为子类创建析构函数。
2、类成员变量是类对象,该类对象含有析构函数,则编译器为子类创建析构函数。
代码
class Parent
{
public:
~Parent() {}
};
class Son : public Parent
{
};
int main()
{
Son sn;
return 0;
}
分析
使用 dumpbin /all 指令,打开 obj 文件,搜索“Son::~Son”,可以得到如下内容:

说明编译器为 Son 类创建了析构函数。
代码
class Son1
{
public:
~Son1() {}
};
class Son2
{
Son1 sn1;
};
int main()
{
Son2 sn2;
return 0;
}
分析
使用 dumpbin /all 指令,打开 obj 文件,搜索“Son::~Son”,可以得到如下内容:

说明编译器为 Son 类创建了析构函数。
(SAW:Game Over!)
本文探讨了在C++中,当基类含有析构函数或类成员变量为含有析构函数的对象时,编译器如何自动为子类创建析构函数。通过具体代码示例和dumpbin工具的使用,详细解析了这一过程。
6476

被折叠的 条评论
为什么被折叠?



