在c++中纠修,虛擬繼承(virtual inheritance)和虛基類(virtual base class)是多重繼承(multiple inheritance)中的內(nèi)容岔帽,用來解決diamond problem给猾。
先來看一個例子
#include <iostream>
using namespace std;
class Animal {
public:
void eat(){cout<<"delicious!"<<endl;}
};
// Two classes virtually inheriting Animal:
class Mammal : virtual public Animal {
public:
void breathe(){}
};
class WingedAnimal : virtual public Animal {
public:
void flap(){}
};
// A bat is still a winged mammal
class Bat : public Mammal, public WingedAnimal {
};
int main(){
Bat b;
b.eat();
return 0;
}