文档章节

virtual继承

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

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一般用于多继承中,

比如,存在基类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
粉丝 2
博文 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
71
0
关于虚基类~点点

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

猪女
2010/11/25
508
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

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 浙江台的电话号码倒是记得挺牢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :《Out On The Streets》 一直不理解北欧人对重金属和死亡摇滚的热情,听完这首歌好像理解了。#今日歌曲推荐# 《Out On The Stre...

小小编辑
今天
5
0
Leetcode PHP题解--D121 21. Merge Two Sorted Lists

D121 21. Merge Two Sorted Lists 题目链接 21. Merge Two Sorted Lists 题目分析 合并两个有序链表。 思路 逐个遍历两个链表,把小的数字塞入数组里。之后再拼起来。 最终代码 <?php/** *...

skys215
今天
5
0
mars-config 动态配置管理

mars-config 码云地址:https://gitee.com/fashionbrot/mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :sprin...

fashionbrot
今天
14
0
女朋友玩吃鸡手游被开挂老哥骗炮,我见义勇为将骗子绳之以法

大家好,我是乔哥。 晚上10点以后下班后我回到自如出租房里面,开始处理公众号粉丝发来的消息,一条一条处理,突然看到了这么几条消息,吸引了我的眼球: 然后我就和这位女粉丝小红(化名)聊...

gzc426
今天
9
0
两款软件

fadetop保护眼睛软件 Snipaste截图软件

伟大源于勇敢的开始
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部