关于C++中覆盖,重载,隐藏的一点说明
2015-08-29 21:56
525 查看
C++覆盖 重载 隐藏是三个经常容易混淆的概念
这里我们简单总结下:
1.重载的条件(编译时多态)
a.同一个类中
b.函数名相同,参数不同(返回值不能作为重载的条件)
c.与函数是否为虚函数无关
2.覆盖的条件(运行时多态)
a.不同的类中,往往是一个继承体系
b.基类该函数为虚函数
c.派生类函数名相同,参数相同
3.隐藏的条件
a.不同的类中,往往是一个继承体系
b.1 若继承类中该函数名相同,参数不同,不管基类中该函数是否为虚函数,隐藏
b.2 若继承类中该函数名相同,参数相同,则只有当基类中该函数不为虚函数的时候,隐藏
这里我们简单总结下:
1.重载的条件(编译时多态)
a.同一个类中
b.函数名相同,参数不同(返回值不能作为重载的条件)
c.与函数是否为虚函数无关
2.覆盖的条件(运行时多态)
a.不同的类中,往往是一个继承体系
b.基类该函数为虚函数
c.派生类函数名相同,参数相同
3.隐藏的条件
a.不同的类中,往往是一个继承体系
b.1 若继承类中该函数名相同,参数不同,不管基类中该函数是否为虚函数,隐藏
b.2 若继承类中该函数名相同,参数相同,则只有当基类中该函数不为虚函数的时候,隐藏
相关文章推荐
- C++面试问答攻略(转)
- C/C++中extern关键字详解
- c语言中static extern register以及全局变量的细节
- 更新二进制位
- 《Effective C++》读书笔记(二)
- NetAnalyzer笔记 之 三. 用C++做一个抓包程序
- 链表的删除和插入
- 《IOS_C语言》高级指针(结构体指针、结构体数组指针、结构体数组指针,作为函数的参数使用、预编译指令)
- 有向图深度优先与广度优先算法的C++实现
- 《IOS_C语言》指针
- LeetCode:Summary Ranges
- DEV-C++官方下载地址
- C++11 并发(一道笔试题目)
- configure: error: C++ compiler cannot create executables
- 简单魔板[Special judge]
- 《IOS_C语言》指针
- C++类的构造、拷贝构造、析构函数等
- C++ 指针与引用的区别 小结
- C++不能中断构造函数来拒绝产生对象(在构造和析构中抛出异常)
- 我的C++程序