#include<iostream> using namespace std; class Base { public: int value1; int value2; //无参构造 Base() { value1 = 1; } //如果不写:Base(),那么我们只能对value1或者value2赋初值 Base(int value) :Base()//在执行这个有参构造函数时候, //顺带着把无参的构造函数也执行一下,委托Base()构造函数。 //只能顺带构造一个,如果多余一个会报错 { value2 = 2; } }; //继承构造 class SubClass:public Base { public: //可以直接使用父类的构造对value1和value2赋值。 using Base::Base; };
int main() { SubClass s(1); cout << s.value1 << endl; cout << s.value2 << endl; }