【C++】继承中的同名隐藏和赋值兼容规则
一、继承中同名隐藏
(1)同名成员属性
1 | class A |
(2)同名成员方法
1 | class A |
错误理解:函数重载
1 | class A |
总结:
- 继承中的同名成员属性、同名成员方法,通常是编译器将基类中同名成员属性和方法隐藏,只显示派生类中的同名成员属性、方法
- 继承中要想访问基类中的同名成员属性、同名成员方法必须加上基类名::方法名进行访问
- 继承中的同名成员是隐藏,不是覆盖、不是函数重载!!!
二、赋值兼容规则
前提:公有继承
- 派生类的对象可以赋值给基类对象。
- 在赋值时舍弃派生类自己的成员,只进行数据成员的赋值。
- 赋值只是对数据成员赋值,对成员函数不存在赋值问题,内存中数据成员和成员函数是分开的。
1 | class Person |
总结:
- 公有继承是一个的概念: 派生类对象是一个基类对象
- 公有继承下,可以使用派生来对象给基类对象进行赋值(赋值兼容规则)
- 公有继承下,可以使用基类指针或者基类引用去 访问派生类对象。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 code-016!