C++中overload,override,overwrite的区别详细解析
2015-08-07 23:04
537 查看
Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
Override(覆盖):是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
Overwrite(重写):是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
Override(覆盖):是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
Overwrite(重写):是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
相关文章推荐
- C++多态调用和继承内存分布
- C++STL之迭代器2
- 20、C语言和设计模式(观察者模式)
- C++STL之迭代器
- 19、C语言和设计模式(桥接模式)
- 18、C语言和设计模式(建造者模式)
- .h和.cpp的用法与区别
- C语言字符串,字符转数字,数字转字符(转)
- (C++)虚函数表解析(转)
- 17、C语言和设计模式(中介者模式)
- 16、C语言和设计模式(策略模式)
- C++中构造函数和析构函数
- 15、C语言和设计模式(适配器模式)
- 14、C语言和设计模式(装饰模式)
- C语言中的逻辑运算符
- c++之const,reference(引用),
- 今天一天都在忙论文的事情,所以今天没时间来学习c++,那就给大家带来一个简单小程序杨辉三角把
- 基于Gsoap 的ONVIF C++ 库
- 文件读写操作
- 13、C语言和设计模式(享元模式)