调用顺序
1.调用积累的构造函数,对基类数据成员初始化。
2,调用子对象构造函数,对子对象数据成员初始化;
3.调用派生类的构造函数,对派生类数据成员初始化。
#include<iostream>
using namespace std;
class Base{
public:
Base(int n)
{
i=n;
cout<<"constructing Base class"<<endl;
}
~Base()
{
cout<<"destructing Base class"<<endl;
}
dispB()
{
cout<<"i="<<i<<endl;
}
private:
int i;
};
class Derived:public Base{
public:
Derived(int y):Base(y),base(y) //派生类的构造函数。调用基类构造函数和子对象构造函数
{
cout<<"constructing Derived class"<<endl;
}
~Derived()
{
cout<<"destructing Derived class"<<endl;
}
private:
Base base; //定义子对象base
};
int main()
{
Derived der(521);
der.dispB();
return 0;
}