1.重载
指函数名相同,但是它的参数列表个数或顺序,类型不同,不能靠返回值来判断。
1)在同一个作用域中的作用范围相同
2) 函数 名字相同
3)参数不同
4)返回值可以不同
2.重写
是指派生类重新定义基类的虚函数
1)不在同一个作用域 (分别位于子类和父类)
2) 函数名相同
3) 参数相同
4) 基类函数必须有virtual 关键字,不能有static.
5) 返回值相同
6) 重写函数的访问修饰符可以不同,尽管virtual是private的,子类中重写改写为public ,protected也可以
3.重定义
1) 不在同一个作用域
2) 函数名相同
3) 返回值可以不同
4) 情况1:参数不同 ,不论有无virtual,基类的函数将被隐藏
5) 情况2:参数相同,但是基类没有virtual,基类的函数被隐藏