优酷土豆合一网题---构造函数和虚构函数的顺序
来源:互联网 发布:网络歌手菲儿个人资料 编辑:程序博客网 时间:2024/04/29 05:17
class B
{
public:
B()
{
cout<<"B"<<endl;
}
~B()
{
cout<<"~B"<<endl;
}
};
struct C
{
public:
C()
{
cout<<"C"<<endl;
}
~C()
{
cout<<"~C"<<endl;
}
};
class D:public B
{
private:
C c;
public:
D()
{
cout<<"D"<<endl;
}
~D()
{
cout<<"~D"<<endl;
}
};
int main()
{
D d;
return 0;
}
打印出的顺为:B,C,D,~D,~C,~B
解释原因: c++的对象的初始化顺序为:基类的数据成员->基类构造函数->派生类数据成员->派生类构造函数。
至于析构函数的顺序正好与构造函数的调用相反,具体原因有待解决。如果为了进一步取证其中确性,则可以把B类中多加一个对象成员A:class A
{
public:
A()
{
cout<<"A"<<endl;
}
~A()
{
cout<<"~A"<<endl;
}
};
观察打印结果。
- 优酷土豆合一网题---构造函数和虚构函数的顺序
- 派生类中构造函数与虚构函数的研究
- 虚构函数的应用!
- c++的虚构函数
- 构造函数的顺序
- 构造函数的构造顺序
- C++面试题1:构造函数和虚构函数中能否调用虚函数?
- C++ 构造函数和虚构函数中能否调用虚函数?
- Spring @Autowired和构造函数的顺序
- C++虚构函数的使用
- 构造函数访问权限和基类构造函数,派生类的构造函数调用顺序
- 虚构造函数和虚析构函数
- 虚构造函数和析构函数
- C++ 虚构造函数和虚析构函数
- 构造函数和析构函数的执行顺序
- 关于构造函数和析构函数的调用顺序
- C++构造函数和析构函数的调用顺序
- C++构造函数和析构函数的调用顺序
- powerdesigner12报constraint name maximum length is limited错误解决方法
- UML中各图形或图标表示的意思
- SpeedMod内核开启手机系统LogCat日志
- 获取串口数据 (C#)
- CNN卷积神经网络简单实现
- 优酷土豆合一网题---构造函数和虚构函数的顺序
- minimalcomps VUISlider/HUISlider
- 使用代理对安卓sdk的更新
- 进程与线程的区别
- 七夕,染红了我的相思
- C#如何调用存储过程
- MPI实现fft的迭代算法 源于并行计算——结构。算法。编程中伪码
- JavaScript html js页面刷新之后下拉菜单选中值不变,在按钮提交后保存下拉列表中值不变
- Sphinx配置