#include <iostream>
#include <string>
using namespace std;class Base08_1{
public:int m_a;Base08_1(){this->m_a = 10;}
};class Base08_2{
public:// int m_b;int m_a;Base08_2(){// this->m_b = 20;this->m_a = 30;}
};// 多继承 继承的类型都要加上,不可省略
class Son08 : public Base08_1,public Base08_2{
public:int m_c;int m_d;
};int main()
{Son08 s1;// cout << "s1大小为: " << sizeof(s1) << endl; // 16字节// cout << s1.m_a << endl; // 此时报错 两个父类中都有m_a ,分不清是哪个父类的m_a 需要加上作用域区分// cout << s1.m_b << endl;// 父类中有同名成员,需要加作用域区分cout << s1.Base08_1::m_a << endl;cout << s1.Base08_2::m_a << endl;return 0;
}
多继承概念
我们可以从一个类继承,我们也可以能同时从多个类继承,这就是多继承。但是由于多继承是非常受争议的,从多个类继承可能会导致函数、变量等同名导致较多的歧义。