文档章节

virtual继承

y
 yizhangxyz
发布于 2016/05/10 12:08
字数 148
阅读 11
收藏 0

一般用于多继承中,

比如,存在基类B:

class B{
public :
    int a;
    
public:
    B()
    {
        CCLOG("construc b------------");
    }
};

派生类D1和D2:

class D1:public B{
public :
    D1()
    {
        CCLOG("construc d1------------");
    }
};

class D2:public B{
public :
    D2()
    {
        CCLOG("construc d2------------");
    }
};

class C:public D1,public D2
{
public :
    C()
    {
        CCLOG("construc c------------");
    }

};

那么C拥有2个a,分别来自D1和D2。

C c;

c.a;//报错

c.D1::a;//ok

int _size = sizeof(C);//_size == 8

构造顺序为 b->d1->b->d2->c

 

但如果 D1,D2使用virtual继承

class D1:virtual public B{};

class D2:virtual public B{};

那么C只会有一个a

c.a;//ok

int _size = sizeof(C);//_size == 12

构造顺序为 b->d1->d2->c

© 著作权归作者所有

共有 人打赏支持
上一篇: 继承模板类
y
粉丝 1
博文 67
码字总数 42366
作品 0
成都
私信 提问
虚函数——虚表总结

非虚拟继承 【带虚函数的类】 class Base { public: virtual void FunTest1() { cout<<"Base::FunTest1()"<

I慕蓝
2016/04/19
0
0
C++对象模型学习——Data语意学

对于下面代码,sizeof的结果: 结果的大小和机器还有编译器都有关。 从class X并不是空,它有一个隐藏的1byte大小,这是编译器安插进去的一个char。这使得这 一class的两个objects得以在内存...

thanatos_y
2016/07/06
58
0
关于虚基类~点点

1. 虚基类 虚基类说明格式: virtual 其中,virtual是虚基类的关键字。虚基类的说明是用在定义派生类时,写在派生类名的后面。 派生类的构造函数的调用次序的原则: · 虚基类的构造函数在非...

猪女
2010/11/25
486
2
Virtual的用法

C++ Virtual详解 Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以...

PlayWithYou
2017/08/22
0
0
C++ vitural关键字

Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数...

长平狐
2012/09/03
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
10分钟前
0
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
16分钟前
0
0
《告诉你真实的美国教育》的读后感3900字

《告诉你真实的美国教育》的读后感3900字: 文章的开篇分析了我们耳熟能详的关于美国教育的小故事,就是那个因为幼儿园的老师教了“0”这个字母,然后妈妈告老师剥夺了孩子的想象力,再然后幼...

原创小博客
24分钟前
0
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
40分钟前
2
0
exportfs命令, vsftp搭建ftp服务

exportfs命令 当修改/etc/exports文件后,更改的内容是不会立即生效的。如果重启nfs服务,会导致客户端重启期间的请求是挂起等待的,可以把客户端的挂载umount进行卸载后,再重启nfs服务,但...

野雪球
50分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部