C++中重载/覆盖/隐藏的区别
来源:互联网 发布:淘宝电风扇 编辑:程序博客网 时间:2024/05/17 07:37
C++中重载/覆盖/隐藏的区别
成员函数被重载的特征:
- 相同的范围(在同一个类中,作用于相同)
- 函数名相同
- 参数不同
- virtual关键字可有可无
覆盖是指派生类函数覆盖基类函数,特征:
- 不同的范围(分别位于派生类与基类)
- 函数名相同
- 参数相同
- 基类函数必须有virtual关键字
隐藏是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
- 如果派生类的函数与基类的函数同名,但是参数不同。此时,无论有无virtual关键字,基类的函数将被隐藏,*即无法通过与基类函数参数列表相同的函数去调用基类函数,因为已经被隐藏,会报错,当然,类内部可以通过::访问基类被隐藏函数,隐藏是对于对象的(注意别与重载混淆)
- 如果派生类的函数与基类的函数同名,且参数相同,但是基类没有virtual关键字。此时,基类的函数将被隐藏(注意别和覆盖混淆)
*也就是说,如果基类函数没有virtual声明,如果派生类用同样的函数名重定义了函数,则将隐藏基类中所有与之同名的函数,无论参数列表是否相同,反正是隐藏了
0 0
- C++中重载/覆盖/隐藏的区别
- C++中重载 覆盖 隐藏的区别
- 重载、覆盖、隐藏的区别
- 重载,覆盖,隐藏的区别
- 重载、覆盖、隐藏的区别
- 重载、覆盖、隐藏的区别
- 重载、覆盖、隐藏的区别
- 重载 、覆盖、隐藏的区别
- 重载、覆盖、隐藏的区别
- 重载,覆盖隐藏的区别
- 重载、覆盖、隐藏的区别
- 重载,覆盖,隐藏的区别
- 重载、覆盖、隐藏的区别
- 重载、覆盖、隐藏的区别
- 隐藏,覆盖,重载的区别
- 重载、覆盖、隐藏的区别
- 重载、覆盖、隐藏的区别
- 重载-隐藏-覆盖的区别
- 单纯形法 -- 求解线性规划
- ubuntu14.04(64)和win8.1双系统安装
- 6.16所学,流程图
- 进程间通信(4) - 管道(pipe)
- js验证不完全收录(非空,中英逗号,字数限制,特殊字符,密码,用户名,手机号)
- C++中重载/覆盖/隐藏的区别
- 关于代码、学习、效率
- 欢迎使用CSDN-markdown编辑器
- 20150616(杂记)
- 在NetBeans环境下的Servlet编程
- Q17 sizeof与strlen的区别
- Majority Element
- Android事件分发分析(一)
- opencv学习笔记2:HighGUI