C++中虚基类
时间: 2023-07-11 09:04:53 浏览: 97
现在将类A声明为虚基类方法如下:-c++程序设计谭浩强ppt
在 C++ 中,如果一个类同时继承了两个或多个含有相同成员函数的基类,就会出现“二义性”问题。为了解决这个问题,C++ 引入了虚基类的概念。
虚基类是指被声明为虚基类的基类。当一个类派生自多个虚基类时,只会保留其中的一个虚基类的实例,避免了多次重复继承,从而解决了“二义性”问题。
在定义一个虚基类时,在基类名前加上 virtual 关键字即可,如下所示:
```
class Base1 {
public:
int a;
};
class Base2 {
public:
int a;
};
class Derived : public virtual Base1, public virtual Base2 {
public:
int b;
};
```
在上面的代码中,Derived 类同时继承了 Base1 和 Base2 两个类,并且在它们的声明中都使用了 virtual 关键字,表示它们是虚基类。由于 Base1 和 Base2 都是虚基类,因此在 Derived 对象中只会存在一个 Base1 对象和一个 Base2 对象,避免了重复继承的问题。
阅读全文