1、 覆蓋和重載有什麼不同?
答:虛函數總是在派生類中被改寫,這種改寫稱爲override(覆蓋)
Override是指派生類重寫基類的虛函數。重寫的函數必須有一致的參數表和返回值(C++標準允許返回值不同的情況,但是很少有編譯器支持這個特性)
Overload約定成俗地被翻譯成重載,是指編寫一個與已有函數同名但是參數表不同的函數。重載不是一種面向對象的編程,而只是一種語法規則,重載與多態沒有什麼直接聯繫。
重載構成的條件:函數參數類型、參數個數不同,才能構成函數的重載。
在函數重載時,要注意函數帶有默認參數的這種情況。如:
void output(int a,int b=5)
void output(int a)
調用有歧義,不能構成重載。