单继承:
先调用基类的构造函数,然后调用派生类的构造函数
例题如下:
#include<iostream>
using namespace std;
class base1
{
public:
base1(int i){cout<<"base1"<<endl;}
};
class derive:public base1
{
public:
derive(int a):base1(a)
{ cout<<"derive"<<endl;}
};
int main()
{
derive obj(2);
}
运行结果;
多继承;
按照继承的时候的顺序调用构造函数
#include<iostream>
using namespace std;
class CB1
{
public:
CB1(int i)
{cout<<"Constructing CB1"<<i<<endl;}
};
class CB2
{
public:
CB2(int j)
{cout<<"Constructing CB2"<<j<<endl;}
};
class CB3
{
public:
CB3( ){cout<<"Constructing CB*"<<endl;}
};
class CD:public CB2,public CB3,public CB1
{
public:
CD(int a,int b):CB1(a),CB2(b){}
};
int main()
{
CD d1(1,2);//多继承时构造函数的调用按照继承的顺序进行调用既是cb2,cb3,cb1
return 0;
}
输出结果如下:

本文通过一个C++示例详细介绍了在多继承中构造函数的调用顺序。当一个类从多个基类派生时,构造函数会按照继承列表中基类出现的顺序依次调用。

1185

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



