c++的多重继承

多重继承定义

  1. 声明形式:
class 派生类名标识符:[继承方式] 基类名标识符1,...,访问控制修饰符 基类名标识符n
{
    
    
	[访问控制修饰符:]
	[成员声明列表]
}

二义性

  1. 多个父类中都有相同的成员或者成员函数,则需要指明具体的父类,不然会产生二义性,编译器报错
#include <iostream>
using namespace std;
class A
{
    
    
public:
	void fun(){
    
    std::cout << "this is A class" << endl;}
};
class B
{
    
    
	void fun(){
    
    std::cout << "this is B class " << endl;}
};
class C : public  B , public A
{
    
    };
int main()
{
    
    
	C test;
	test.A::fun(); // 正确的使用方式
	test.B::fun();// 正确的使用方式
	test.fun(); // 编译器会报错
	return 0;
}

多重继承的构造顺序

  1. 单一类继承的先调用父类的构造函数,再调用子类的构造函数;先调用子类的析构函数,再调用父类的析构函数。
  2. 多重继承中的基类构造函数被调用的顺序以派生类表中声明的顺序为准,调用顺序是按照基类名标识符的前后顺序进行的。

猜你喜欢

转载自blog.csdn.net/qq_45279570/article/details/110009724