前一篇 http://www.cnblogs.com/iois/p/4085173.html
写有些地方不够准确,重新整理了一遍
函数重载(Function Overloading)
C++允许同一范围(scope)( 在同一个类中 )内具有多个名称相同的函数。这些函数成为重载函数(overloaded function)
。
C++ 使用函数声明的参数数量,参数类型,省略号存在或缺失 ( Presence or absence of ellipsis ), const 或 volatile来区分同一范围内具有相同名称的函数组。
http://msdn.microsoft.com/zh-cn/library/5dhe1hce.aspx
重定义(redefining,也叫隐藏):
派生类的函数屏蔽了与其同名的基类函数;
- 若派生类的函数与基类的函数名称相同,但参数类表不同,则基类函数被隐藏(不管基类函数有无virtual修饰);
- 若派生类的函数与基类的函数名称相同,参数列表相同,但基类函数无virtual修饰,则基类函数被隐藏。
重定义
:一个继承了的成员函数的定义可以在派生类中进行修改,使其在派生类中的含义有别于基类中的含义。
我想使用基类给出的函数的定义,虽然我是一个派生类:son_obj.father::f();
自己的理解 :重载、重定义
<-->覆盖
重定义
是发生在基类 派生类 这样的范围内的重载
重载
和重定义
其实是一类 东西,本质有别于覆盖
覆盖(override,重写)(用于实现多态,动态绑定):
子类重写定义基类中有相同名字相同参数的虚函数。
- 不同范围内(基类 派生类)
- 函数名相同
- 参数相同
- 基类函数有virtual关键字修饰
virtual函数是private的,派生类中可重写为public 或者protected。
自己的理解 :动态绑定
<-->覆盖/重写
override:
凌驾;不理会;比…更重要;超驰控制
[网络] 覆盖;重写;覆写
http://www.cnblogs.com/kevinGaoblog/archive/2012/08/25/2656989.html
http://blog.163.com/clevertanglei900@126/blog/static/111352259201102441934870/