重载(overload),覆盖(override),隐藏(hide)
来源:互联网 发布:java 类和对象 编辑:程序博客网 时间:2024/04/29 14:55
重载(overload):
必须在一个域中,函数名称相同但是函数参数不同,重载的作用就是同一个函数有不同的行为,因此不是在一个域中的函数是无法构成重载的,这个是重载的重要特征。相同的函数名的函数,在基类和派生类中的关系只能是覆盖或者隐藏
覆盖指的是派生类的虚拟函数覆盖了基类的同名且参数相同的函数!
在这里,我要强调的是,这种覆盖,要满足两个条件
(a)有virtual关键字,在基类中函数声明的时候加上就可以了
(b)基类CB中的函数和派生类CD中的函数要一模一样,什么叫一模一样,函数名,参数,返回类型三个条件。
有人可能会对(b)中的说法质疑,说返回类型也要一样??
是,覆盖的话必须一样
隐藏(hide):
指的是派生类的成员函数隐藏了基类函数的成员函数.隐藏一词可以这么理解:在调用一个类的成员函数的时候,编译器会沿着类的继承链逐级的向上查找函数的定义,如果找到了那么就停止查找了,所以如果一个派生类和一个基类都有同一个同名(暂且不论参数是否相同)的函数,而编译器最终选择了在派生类中的函数,那么我们就说这个派生类的成员函数"隐藏"了基类的成员函数,也就是说它阻止了编译器继续向上查找函数的定义.
- 关于隐藏(hide), 重载(overload), 覆盖(override)
- 重载(overload)、覆盖(override)和隐藏(hide)
- 重载(overload),覆盖(override),隐藏(hide)
- 重载(overload)、覆盖(override)和隐藏(hide)
- 重载(overload)、覆盖(override)和隐藏(hide)
- 重载(overload),覆盖(override),隐藏(hide)
- 重载(overload)、覆盖(override)、隐藏(hide) 辨析
- 重载(overload)、覆盖(override)、隐藏(hide)
- 重载(overload)、覆盖(override)和隐藏(hide)
- 区分重载(overload),覆盖(Override)和隐藏(hide)
- 重载(overload),覆盖(override),隐藏(hide)的区别
- 重载(overload)、覆盖(也叫重写)(override) 隐藏(hide)
- 重载(Overload) 、 覆盖(Override) 隐藏(hide)
- 重载(overload)、覆盖(override)、隐藏(hide)深度剖析
- 重载(overload),覆盖(override),隐藏(hide)的区别
- 函数重载(overload)、覆盖(override)、隐藏(hide)的区别
- 重载(overload)、覆盖(override)、隐藏(hide)的区别
- 重载(overload)、覆盖(override)、隐藏(hide)的区别
- Redis被bgsave和bgrewriteaof阻塞的解决方法
- 连接池的几种设置方法
- Iphone开发 从helloWorld看app应用的运行轨迹和生命周期
- 面试题:用一个临时变量实现单链表逆序
- 将元数据写入文件时发生错误 --存储空间不足,无法完成此操作。
- 重载(overload),覆盖(override),隐藏(hide)
- poj 1573
- Alpha和Beta测试简介
- Error (future) 690: "format7.cpp", line 383 # Nonempty source files must end with a newline that is
- 生产环境jvm参数设置建议
- supesite 6.0 $_SGLOBAL[supe_username_show]调用显示GUEST
- 将properties文件放在Jar包并读取
- 访问Access数据库
- vs2010 rdlc 报表总结