1、 覆盖和重载有什么不同?
答:虚函数总是在派生类中被改写,这种改写称为override(覆盖)
Override是指派生类重写基类的虚函数。重写的函数必须有一致的参数表和返回值(C++标准允许返回值不同的情况,但是很少有编译器支持这个特性)
Overload约定成俗地被翻译成重载,是指编写一个与已有函数同名但是参数表不同的函数。重载不是一种面向对象的编程,而只是一种语法规则,重载与多态没有什么直接联系。
重载构成的条件:函数参数类型、参数个数不同,才能构成函数的重载。
在函数重载时,要注意函数带有默认参数的这种情况。如:
void output(int a,int b=5)
void output(int a)
调用有歧义,不能构成重载。