您的位置:首页 > 编程语言 > C语言/C++

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: