首页 > 代码库 > c++ 重载,覆盖,重定义

c++ 重载,覆盖,重定义

函数重载(Function Overloading)

C++允许同一范围(scope)(在同一个类中)内具有多个名称相同的函数。这些函数成为重载函数(overloaded function)。
C++ 使用函数声明的  参数数量参数类型省略号存在或缺失(Presence or absence of ellipsis),const 或 volatile 来区分同一范围内具有相同名称的函数组。
 

覆盖(override,重写):

子类重写定义基类中有相同名字相同参数的虚函数。
 
不同范围内(特指基类派生类)
函数名相同
参数相同
基类函数有virtual关键字修饰
 
virtual函数是private的,派生类中可重写为public 或者protected。
 

重定义(redefining,也叫隐藏):

派生类的函数屏蔽了与其同名的基类函数;
a、若派生类的函数与基类的函数名称相同,但参数类表不同,则基类函数被隐藏(不管基类函数有无virtual修饰);
b、若派生类的函数与基类的函数名称相同,参数列表相同,但基类函数无virtual修饰,则基类函数被隐藏。
 
http://msdn.microsoft.com/zh-cn/library/5dhe1hce.aspx
http://www.cnblogs.com/kevinGaoblog/archive/2012/08/25/2656989.html
http://blog.163.com/clevertanglei900@126/blog/static/111352259201102441934870/

c++ 重载,覆盖,重定义