Overload重载:
功能相近的几个函数用相同的名字表示,但参数不同(包括类型、顺序不同),即函数重载。
- 相同范围(在同一个类中)
- 函数名字相同
- 参数不同
- virtual关键字可有可无。 注意重载解析不考虑返回类型 ------函数名相同,参数不同且在相同范围--重载
Override覆盖--重写 :
是指派生函数覆盖基类函数,是C++多态的表现。
- 不同的范围(分别位于派生类与基类)
- 函数的名字相同
- 参数相同
- 返回值相同
- 基类函数必须有virtual关键字
- .含有纯虚函数的类称为抽象类,不可被实例化。 ----------派生类函数与基类函数完全相同且基类函数有virtual关键字,允许被派生类覆盖
Overwrite--重定义
- 位于不同的范围(分别位于派生类与基类)
- 函数名字相同
- 返回值可以不同
- 参数不同,不论有无virtual关键字,基类的函数被隐藏
- 参数相同,但是基函数没有virtual关键字,基类函数被隐藏
- 当派生类对基类函数进行了override/overwite ,则派生类使用自己重新override/overwite的函数,否则它使用基类的函数
- 重写发生在基类和派生类之间,当函数的名称相同但参数不同,无论是否有virtual 均发生重写,或者函数的名称与参数完全相同但没有写virtual关键字也发生重写。基类的函数方法被隐藏。但可以使用限定符::引用。