【校招面试 之 C/C++】第12题 C++ 重载、重写和重定义

时间:2024-08-22 10:37:50

1、成员函数重载特征:
   a.相同的范围(在同一个类中);

b.函数名字相同;

c.参数不同(参数个数不同或者参数类型不同,但是返回值不同不能使重载);

d.virtual关键字可有可无。

2、重写(覆盖)是指派生类函数覆盖基类函数,特征是:

a.不同的范围,分别位于基类和派生类中

b.函数的名字相同

c.参数相同

d.基类函数必须有virtual关键字 (派生类中可以不写virtual关键字)

3、重定义(隐藏)是指派生类的函数屏蔽了与其同名的基类函数,规则如下:

a.如果派生类的函数和基类的函数同名,但是参数不同,此时,不管有无virtual,基类的函数被隐藏。

b.如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有vitual关键字(如果有virtual关键字就变成了重写),此时,基类的函数被隐藏。