10.多继承

C++允许一个子类继承自多个父类,这种现象叫做多继承。

多继承的语法

class 子类名:继承方式 父类名1, 继承方式 父类名2 {
};

示例

// filename: multi_inherit.cpp
#include <iostream>
#include <string.h>

class Plane {
    public:
        void fly(int height) {
            std::cout << "飞机以 " << height << " 的高度飞行\n";
        }
    private:
        int xxx;
};

class Car{
    public:
        void run(int speed) {
            std::cout << "汽车以 " << speed << "km/h 的速度行使\n";
        }
    private:
        int yyy;
};

class PlaneCar: public Car, public Plane{
};

int main(int argc, char * argv[]) {
    PlaneCar pc;
    pc.fly(10000);
    pc.run(210);
    return 0;
}

编译和运行结果如下

weimz@mzstudio:~$ g++ -o multi_inherit multi_inherit.cpp
weimz@mzstudio:~$ ./multi_inherit
飞机以 10000 的高度飞行
汽车以 210km/h 的速度行使