1. 程式人生 > >C++ 過載、覆蓋、隱藏的區別

C++ 過載、覆蓋、隱藏的區別

過載:

1)相同的範圍(在同一個類中);
2)函式名相同
3)引數不同
4)virtual關鍵字可有可無
5)與返回值型別無關

覆蓋:

1)不同的範圍(基類和派生類中)
2)函式名相同
3)引數相同
4)基類函式必須有virtual關鍵字
5)返回值型別必須相同

隱藏:

1)如果派生類的函式與基類的函式同名,但是引數不同。此時,不論有無virtual關鍵字,基類的函式將被隱藏(注意別與過載混淆)
2)如果派生類的函式與基類的函式同名,並且引數相同,但是基類函式沒有virtual關鍵字,此時,基類的函式將被隱藏(注意別與覆蓋混淆)