子类初始化父类成员

张开发
2026/4/7 13:21:12 15 分钟阅读

分享文章

子类初始化父类成员
情况 1父类 Person 没有自定义构造函数你现在的代码如果 Person 只有成员变量 _a 没有写构造函数编译器会为它生成默认构造函数。你可以这样写classPerson{public:int_a;// 编译器自动生成默认构造函数 Person()};classStudent:publicPerson{// 构造函数Student(inta,charc){// 直接在构造函数体内给 _a 赋值而不是在初始化列表里初始化_aa;_b0;// 给 _b 赋值}public:int_b;};情况 2父类 Person 有带参构造函数标准做法如果 Person 设计了带参构造函数就必须在子类初始化列表中调用classPerson{public:int_a;// 带参构造函数Person(inta):_a(a){}};classStudent:publicPerson{// 构造函数Student(inta,charc):Person(a),_b(0)// ✅ 调用父类构造 初始化自己的 _b{// 这里不需要再给 _a 赋值}public:int_b;};子类构造时必须调用父类构造

更多文章