调用顺序
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;
}

本文详细介绍了在C++中构造函数的调用顺序,包括如何先调用基类构造函数,然后调用子对象构造函数,最后完成派生类自身的初始化过程。通过实例演示了如何在派生类中正确地初始化基类和子对象。
429

被折叠的 条评论
为什么被折叠?



