//最基本的测试
#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;
}
运行结果说明构造函数执行顺序为 基类,成员类,自身~