可以举一个具体的例子吗
时间: 2024-03-23 10:43:47 浏览: 18
好的,下面是一个使用虚基类的例子:
```c++
#include <iostream>
using namespace std;
class Animal {
public:
int age;
};
class Mammal : virtual public Animal {
public:
int numBreasts;
};
class Bird : virtual public Animal {
public:
int flySpeed;
};
class Bat : public Mammal, public Bird {
public:
void show() {
cout << "age = " << age << endl;
cout << "numBreasts = " << numBreasts << endl;
cout << "flySpeed = " << flySpeed << endl;
}
};
int main() {
Bat bat;
bat.age = 2;
bat.numBreasts = 2;
bat.flySpeed = 100;
bat.show();
return 0;
}
```
在这个例子中,Animal是虚基类,它被Mammal和Bird虚继承。Bat类通过多重继承同时继承了Mammal和Bird类,这样就可以同时拥有它们的成员变量。在show函数中可以看到,Bat类可以访问到Animal类的age成员变量,而这个成员变量只有一个,没有出现多个实例的问题。