美文网首页
虚拟继承和虚基类

虚拟继承和虚基类

作者: 大兔子先生 | 来源:发表于2017-07-12 11:18 被阅读0次

在c++中,虚拟继承(virtual inheritance)和虚基类(virtual base class)是多重继承(multiple inheritance)中的内容,用来解决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;
}

![ ] (http://jiantuku.com/#/albums/6527)

相关文章

  • 虚拟继承和虚基类

    在c++中,虚拟继承(virtual inheritance)和虚基类(virtual base class)是多...

  • c++虚继承

    什么时候用到虚继承 虚继承和虚函数是完全无相关的两个概念。 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继...

  • 虚基类

    经提取,存有公共元素的,被虚继承的祖父类,称为虚基类。虚基类,需要设计 和抽象 虚继承,是一种继承的扩展。 cla...

  • ★01.基础概念

    抽象类:含有虚函数的类。 抽象基类:含有纯虚函数的类。 虚基类:多重继承中虚继承的基类。 类静态数据成员的定义必须...

  • 虚继承与空基类优化

    首先介绍一下虚继承吧。 在虚继承下,对给定虚基类,无论该类在派生层次中作为虚基类出现多少次,只继承一个共享的基类子...

  • 多重继承 和 虚基类

    多重继承下的派生类型 定义形式: class 派生类名:继承方式 基类名1,继承方式 基类名2{}; 构造函数 根...

  • 虚函数和非虚函数

    接口继承和实现继承 public继承下,派生类总是继承基类的接口。 纯虚函数必须被派生类重新声明,通常在抽象类中没...

  • 构造语义学

    继承构造函数 类具有可派生性,派生类可以自动的获取基类的成员变量和接口(虚函数和纯虚函数,public派生)。不过...

  • C++学习三

    一、运算符重载 二、继承 1、基本 2、多继承、二义性 3、属性二义性 4、虚基类(虚继承) 三、多态(虚函数) ...

  • 关于虚继承的一些问题(转)

    关于C++中的虚拟继承的一些总结 C++类的大小 1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基...

网友评论

      本文标题:虚拟继承和虚基类

      本文链接:https://www.haomeiwen.com/subject/ontbhxtx.html