1.注意点:
1.1子类的构造函数,除了需要初始化本类数据,
还需要调用父类的构造函数初始化被继承下来的属性
1.2子类的构造函数中父类必须采用初始化参数列表
#include <iostream>
#include <string>
using namespace std;
class Mother
{
protected:
string name;
int age;
public:
Mother()
{
cout << "无参构造:" ;
}
Mother(string name, int age) :name(name), age(age)
{
cout << "有参构造:" ;
}
};
class Son :public Mother
{
protected:
int money;
public:
//....这里会调用无参构造(注意测试结果)....
Son(int money) :money(money)
{
cout << "mySon1:"<<money << endl;
}
//.....需要把父类构造写在这里.....上面是有省略....
Son(string name, int age, int money) :Mother(name, age)
{
this->money = money;
cout << "mySon2:" <<name <<" "<<money<<" " <<age<< endl;
}
};
int main()
{
Son mySon1(600);
Son mySon2("YourSon",500, 888);
return 0;
}
2.测试结果:
3.比如QT中你继承了一个什么东西的时候,这里的写法需要注意一下