[C++]虚基类,解决多继承造成的二义性

本文介绍了C++中的虚基类和虚继承概念,这两种机制旨在解决多继承导致的数据冗余和访问困难。通过使用虚基类,可以确保在多级多重继承中只保留一份共同的基类成员,从而减少存储空间占用并消除二义性。示例代码展示了如何在类B和C中通过虚继承从基类A派生,并在类D中进一步实现多继承,成功避免了二义性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
using namespace std;
//虚继承的意义
//在多继承中,保存共同基类的多份同名成员,虽然有时是必要的,可以在不同的数
//据成员中分别存放不同的数据,但在大多数情况下,是我们不希望出现的。因为保留多
//份数据成员的拷贝,不仅占有较多的存储空间,还增加了访问的困难。
//为此,c++提供了,虚基类和虚继承机制,实现了在多继承中只保留一份共同成员。
//虚基类,需要设计和抽象,虚继承,是一种继承的扩展
//解决多重多级继承造成的二义性

class A
{
public:
    int i;
    void print(){
cout<<"i="<<i<<endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值