一、程序及输出
多继承的基本语法如下:
class Base1 {
// Base1 class definition
};
class Base2 {
// Base2 class definition
};
class Derived : public Base1, protected Base2 {
// Derived class definition
};
#include<iostream>
using namespace std;
class Base1
{
public:
Base1()
{
this->m_A = 10;
}
int m_A;
};
class Base2
{
public:
Base2()
{
this->m_A = 20;
}
int m_A;
};
//多继承
class Son : public Base1, public Base2
{
public:
int m_C;
int m_D;
};
void test01()
{
cout << "sizeof Son = " << sizeof(Son) << endl;
Son s;
//当多继承的两个父类中有同名成员,需要加作用域区分
cout << s.Base1::m_A << endl;
cout << s.Base2::m_A << endl;
}
int main(){
test01();
system("pause");
return EXIT_SUCCESS;
}
输出:
当多继承的两个父类中有同名成员,需要加作用域区分,否则会不明确
。
二、分析与总结
在 C++ 中,多继承是指一个派生类可以同时继承自多个基类。
多继承的基本语法
:
class Base1 {
// Base1 class definition
};
class Base2 {
// Base2 class definition
};
class Derived : public Base1, protected Base2 {
// Derived class definition
};
注意事项
:
一个派生类可以同时继承自多个基类,通过逗号分隔每个基类。
可以为每个基类指定不同的访问权限,包括 public, protected, private。
派生类可以访问多个基类的成员,但需要根据继承时指定的访问权限来确定访问权限。
如果多个基类有同名成员,需要使用作用域解析符号 :: 来指定访问特定基类的成员。