先执行基类初始化列表,再执行基类的构造函数,再执行派生类参数初始化列表,再执行派生类的构造函数内。
代码如下:
#include <iostream>
using namespace std;
#include <iostream>
#include <string>
using namespace std;
class Bound {
public:
Bound(int line) {
cout<<"Bound "<<line<<endl;
}
};
class Shape {
public:
Shape() : ab(6) {
cout<< "Shape strutured"<<endl;
}
private:
string id;
Bound ab;
};
class Triangle : public Shape {
public:
Triangle() : version("1.0"),name("triagnle"),bd(4) {
cout<<"Triangnle"<<endl;
}
private:
string version;
string name;
Bound bd;
};
int main()
{
Triangle tg;
return 0;
}
执行结果:

本文详细探讨了C++中构造函数和初始化列表的执行顺序,首先介绍基类的初始化列表和构造函数如何依次进行,然后阐述派生类如何在其基础上继续初始化。通过示例代码展示这一过程,帮助读者理解这一核心概念。

2151

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



