C/C++中同名覆盖原则和赋值兼容原则

同名覆盖原则

派生类与基类中有相同成员时:
若未强行指名,则通过派生类对象使用的是派生类的同名成员;

如果要通过派生类的对象访问基类被覆盖的同名成员,需要加 对象名.基类名::同名成员 来限定

二义性解决方法:

一、用类名来限定
二、采用同名覆盖原则

在多继承时,基类与派生类之间,或基类之间出现同名成员时,将出现访问时的二义性(不确定性)——采用虚函数或支配(同名覆盖)原则来解决。
当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性——采用虚基类来解决。

赋值兼容原则

一个公有派生类的对象在使用上可以被当作基类的对象,反之则禁止。
具体表现在:
派生类的对象可以被赋值给基类对象。
派生类的对象可以初始化基类的引用。
基类的对象指针也可以指向派生类。但是如果派生类的指针想要指向基类,则必须要将基类对象的地址强转为派生类类型的。(原则是派生类数据成员默认比基类多一些,赋值或引用初始化给基类对象时,基类只读取自己的那一部分,这只是我自己的理解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值