constructor的执行顺序

来源:互联网 发布:软件测试流程规范化 编辑:程序博客网 时间:2024/05/17 20:31
//最基本的测试
#include<iostream>using namespace std;class A{public:A(){cout<<"A"<<endl;}~A(){cout<<"~A"<<endl;}};class B:public A{public:B(){cout<<"B"<<endl;}~B(){cout<<"~B"<<endl;}};int main(){B b;return 0;}

输出结果:


说明继承类B,首先调用的基类A的构造函数,构造A的部分,然后再调用自己的构造函数,析构时相反。

 

#include<iostream>
using namespace std;
class A
{
public:
 A();
};
A::A()
{
 cout<<"constructor a called"<<endl;
}
class C
{
public:
 C();
};
C::C()
{
 cout<<"constructor c called"<<endl;
}
class B:public A
{
public:
 B();
private:
 C c;
};
B::B()
{
 cout<<"constructor b called"<<endl;
}
int main()
{
 B b;
 return 0;
}

运行结果说明构造函数执行顺序为 基类,成员类,自身~

原创粉丝点击