重载,覆盖,隐藏,多态辨析
2015-03-15 16:24
169 查看
重载特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
覆盖:派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
隐藏:是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
多态有两种表现形式:
一种是父类与子类之间表现 :重写 (覆盖)
还有一种是在同一个类:
重载
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
覆盖:派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
隐藏:是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
多态有两种表现形式:
一种是父类与子类之间表现 :重写 (覆盖)
还有一种是在同一个类:
重载
相关文章推荐
- 多态原理实现分析及重载,隐藏,覆盖的辨析
- 重载,覆盖,隐藏和多态
- 覆盖,重写,重载,隐藏,多态的区别(一下子清晰了)
- c++多态、重写、覆盖、隐藏、重载
- C++覆盖、重载、多态区别 ; 重载、重写(覆盖)、重定义(隐藏)三者区别
- 重载、虚函数(覆盖、多态)、隐藏 -- 代码示例
- 重载、覆盖、多态与函数隐藏
- [C++基础]重载、覆盖、多态与函数隐藏(1)
- Java重载、覆盖、多态、隐藏的区别与联系
- [C++基础]重载、覆盖、多态与函数隐藏(2)
- [Java] 继承,隐藏,覆盖,重载,多态,抽象类,接口
- 重写、覆盖、重载、隐藏、多态几个概念的区别分析 http://blog.csdn.net/yukin_xue/article/details/7437742
- C++中的重载,隐藏,覆盖,虚函数,多态浅析
- C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别
- 重载、覆盖、多态与函数隐藏--1
- C++继承、虚函数、纯虚函数、多态、覆盖、重载、隐藏、引用等常用概念
- [C++基础]重载、覆盖、多态与函数隐藏(3)
- C++中的虚函数,多态,覆盖隐藏重载
- 多态(2)纯虚函数与重载、重写(覆盖)、重定义(隐藏)
- 重载、覆盖、多态与函数隐藏---2