函数重载:在作用域中,函数名同名,函数参数顺序类型个数不同时构成重载
使用const 修饰也可以构成重载,使用默认参数时要注意调用时避免与其他函数存在二异性
1)函数返回值与构成函数重载无任何关系
2)类的静态成员函数与普通成员函数可以形成重载
3)函数重载发生在同一作用域中,如类成员函数之间的重载、全局函数之间的重载
4)基类函数必须有 virtual 关键字,不能有 static,大概是多态的原因
函数重写:在派生类中对基类成员函数的返回值类型、函数名、参数列表相同的函数重新定义,也叫虚函数重写
1)重写函数的访问修饰符可以不同。尽管基类中virtual 是 private 的,派生类中重写改写为 public,protected 也是可以的
2)基类函数必须有 virtual 关键字,不能有 static,大概是多态的原因
函数覆盖:隐藏是指 派生类的函数屏蔽了与其同名的基类函数。注意只要同名函数,不管参数列表是否相同,基类函数都会被隐藏
1)函数名相同、返回值类型可以不同、参数相同或不同、有无 virtual关键字基类的这类函数都会被隐藏
2)物理上都会被派生类继承
3)使用对象.作用域运算符::即可调用被覆盖的基类函数



