曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2344|回复: 0
打印 上一主题 下一主题

虚基类和非虚基类混合使用是情况是怎么样的?

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2013-12-14 14:55:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Q :虚基类和非虚基类混合使用是情况是怎么样的?

A :通常,如果基类是虚基类,派生类将包含基类的一个子对象;如果基类不是虚基类,派生类将包含多个子对象。当虚基类和非虚基类混合时,情况是怎么样的呢?

假设类 B 作为 类C 和 类D 的虚基类,同时也被用作 类X 和 类Y 的非虚基类,而 类M 则从 C, D, X 和 Y 派生而来。此时,类M 从虚派生祖先(即 类C 和 类D)那里继承了一个 类B 的子对象,并从每一个非虚派生祖先(类X 和 类Y)分别继承了一个 类B 子对象。结果是,类M 包含了 3 个 B 类子对象。

因此,当类通过多条非虚途径和虚途径继承某个特定的基类时,该类将包含一个表示所有的虚途径的基类子对象和分别表示各条非虚途径的多个基类子对象。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-17 23:25 , Processed in 0.062021 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表