c++ 重载,覆盖,重定义
写的不是很明白,后来又重新整理过了,在:
http://www.cnblogs.com/iois/p/4986790.html
函数重载(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修饰,则基类函数被隐藏。