C++中overload,override,overwrite的区别详细解析
2015-07-18 14:08
453 查看
以下是对C++中overload,override,overwrite的区别进行了详细的分析介绍,需要的朋友可以过来参考下
Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
Override(覆盖):是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
Overwrite(重写):是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
Override(覆盖):是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
Overwrite(重写):是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
相关文章推荐
- C++ Primer笔记10_运算符重载_赋值运算符_进入/输出操作符
- 一起talk C栗子吧(第十九回:C语言实例--位操作)
- C++项目实训:银行储蓄系统
- C/C++程序设计06(面向对象)
- c++Builder 2009 2010 出现Cannot convert 'wchar_t *' to 'const char *
- C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)
- C语言简单实现计算字符个数的方法
- C++内存管理
- C/C++中volatile的用法
- C/C++中volatile的用法
- C语言基础4
- B树、B-树、B+树、B*树
- [c++学习笔记]反汇编角度看变量名和引用作为函数参数
- 算法导论 第十八章;B 树
- 《C++ Primer》 ---- 关于变量 与 基本类型
- C语言中如何将二维数组作为函数的参数传递
- c++课程设计——————银行系统
- Cpp的Virtual函数不能只声明不定义
- google_cpp编程规范要点整理
- 入门刚开始学C,就发现scanf()是不安全的