只需要同名就能触发shadow
overload 重载发生在同一个作用域 函数名相同,参数列表不同(个数 类型 顺序) 希望发生的
shadow 发生在父子类中,只要函数名相同,即可构成shadow 不希望发生,确实同名,则加作用域限定也就是 类名::
继承方式
类内部的 public protected private 影响访问权限
继承中 public protected private 父类中的成员在子类中的访问权限
不影响子类现有成员访问方式
- 在子类中
- 在子类对象中
99%的情况下只使用public继承方式
![在这里插入图片描述](https://img-blog.csdnimg.cn/004089abc49647418c194c02eeef10c7.png
public 提供接口用的
protected 隐藏数据用的,传承数据
private 隐藏数据用的
继承方式总结
public 传承接口,传承数据
protected 只传承数据
private 既没有传承接口,也没有传承数据
继承的时候用public 最大限度得继承接口和数据
私有继承和保护继承 只在公司内有意义 防止公用接口扩散
多继承
多继承很多时候带来麻烦
👇三个的地址一样,但是他们的类型不一样的
多继承:
1.出现冗余信息,给调用者带来不便
2.要解决的问题, 1 实现Z类中数据只有一份, 2 数据访问便利
提取相同数据到一个公共类M中去,然后让被提取公因式的类分别虚继承自公共类M
class M:虚基类 虚继承