多继承:一个类有两个或两个以上的父类,称之为多继承。
注意:1⃣️多个父类构造函数的调用顺序 // 与继承顺序相同
2⃣️如何辨别多个父类中同名函数
(如果多个父类中出现同名函数,子类中没有重写此函数,通过子对象调用此函数,出现二义性)
解决办法:1.重写此函数
3⃣️菱形继承问题
办法:虚继承(直接从爷爷类继承成员)
son & operator=(son &s1){
if (this!=&s1) {
Father::operator=(s1);
Mother::operator=(s1); // 父类的深拷贝
… // 子类自己成员的深拷贝
}
return *this;
}
son(son &s1):Father(s1),Mother(s1){ // 子类的拷贝构造函数,父类部分以参数列表形式将子类对象以参数的形式传至父类,由父类拷贝构造函数完成继承自父类部分的拷贝
…//子类自身的拷贝构造成员实现
}
friend ostream & operator<<(ostream &out,son &s1){
out<<(Father &)s1;
out<<(Mother &)s1;// 输出运算符重载 输出子类的父类部分
… // 输出自己成员部分
return out;
}