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

来源:互联网 发布:网络博客被黑客攻击 编辑:程序博客网 时间:2024/06/04 18:41

同名覆盖原则

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

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

二义性解决方法:

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

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

赋值兼容原则

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

原创粉丝点击