#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;
}
多继承概念
我们可以从一个类继承,我们也可以能同时从多个类继承,这就是多继承。但是由于多继承是非常受争议的,从多个类继承可能会导致函数、变量等同名导致较多的歧义。