下面程序的运行结果为( )
#include <iostream>
using namespace std;
class A{
public:A(){cout<<"1";}
~A(){cout<<"2";1}
};
class B:public A{
public:B(){cout<<"3";}
~B(){cout<<"4";}
};
void main(){B b;}
1234
1324
1342
3142
答案 C
实例化子类对象构造函数调用顺序:父类,成员对象,子类;
析构顺序:子类,成员对象,父类
在C++中:
(1)对于构造函数,先调用基类的构造函数,再调用派生类的构造函数,就像盖楼房一样,从地基开始,一层两层往上盖。。。
(2)对于析构函数,先是调用派生类的析构函数,再调用基类的析构函数,就像拆楼房一样,从上面开始拆。。。
注:先构造的后析构。