C++ 重载 覆盖 隐藏 重写 重定义
2014-02-27 09:57
162 查看
1:重载(overload):在同一个类中,函数名相同,参数不同
2:覆盖(overlaod):派生类和基类直接,函数名相同,参数相同,基函数必须有virtual关键字。在Think In C++一书中说可以称之为重写(override)。其实就是虚函数
3:隐藏(Think In C++一书称重定义(redefining)):
3.1:派生类和基类函数同名,参数相同,无virtual关键字,此时基类函数被隐藏
3.2:派生类和基类函数同名,参数不同,不论有无virtual关键字,基类的函数被隐藏
简单点说子类A和基类B中都有一个函数Do,
A *pa=new A();
B* pb=(B*)pa;
如果为覆盖则pa和pb调用的Do同为子类中的Do
如果为隐藏则pa调用A中的Do,Pb调用B中的Do
2:覆盖(overlaod):派生类和基类直接,函数名相同,参数相同,基函数必须有virtual关键字。在Think In C++一书中说可以称之为重写(override)。其实就是虚函数
3:隐藏(Think In C++一书称重定义(redefining)):
3.1:派生类和基类函数同名,参数相同,无virtual关键字,此时基类函数被隐藏
3.2:派生类和基类函数同名,参数不同,不论有无virtual关键字,基类的函数被隐藏
简单点说子类A和基类B中都有一个函数Do,
A *pa=new A();
B* pb=(B*)pa;
如果为覆盖则pa和pb调用的Do同为子类中的Do
如果为隐藏则pa调用A中的Do,Pb调用B中的Do
相关文章推荐
- C++中重定义、重写、重载的区别以及隐藏与覆盖的访问
- C++中的覆盖(重写)、重载、隐藏(重定义)、多态!
- C++中重定义、重写、重载的区别以及隐藏与覆盖的访问
- C++覆盖、重载、多态区别 ; 重载、重写(覆盖)、重定义(隐藏)三者区别
- c++重载,重写/覆盖,重定义/隐藏
- c++三大概念要分清--重载,隐藏(重定义),覆盖(重写)
- C++中重定义、重写、重载的区别以及隐藏与覆盖的访问
- C++中重定义、重写、重载的区别以及隐藏与覆盖的访问
- C++ 重载,重定义(覆盖),重写名字隐藏
- C++中重定义、重写、重载的区别以及隐藏与覆盖的访问
- c++中的隐藏、重载、覆盖(重写)
- C++中的隐藏、重载、覆盖(重写)
- C++中的隐藏、重载、覆盖(重写)
- C++中重载、重写(覆盖)和隐藏的区别
- c++ --> 重载、重写(覆盖)和隐藏的区别
- 类成员函数中重载/重写(覆盖)/重定义(隐藏)的区别
- C++ 继承真正在做的事系列【重载,重写/覆盖,隐藏】
- C++中重载、重写(覆盖)和隐藏的区别实例分析
- C++成员函数重载、覆盖(重写)和隐藏
- c++中的隐藏、重载、覆盖(重写)