C++中過載、重寫(覆蓋)和隱藏的區別例項分析
本文例項講述了C++中過載、重寫(覆蓋)和隱藏的區別,對於C++面向物件程式設計來說是非常重要的概念。具體分析如下:
1.過載:過載從overload翻譯過來,是指同一可訪問區內被宣告的幾個具有不同引數列(引數的型別,個數,順序不同)的同名函式,根據引數列表確定呼叫哪個函式,過載不關心函式返回型別。
示例程式碼如下:
?1 2 3 4 5 6 7 8 |
class
A{
public :
void
test( int
i);
void
test( double
i);
void
test( int
i, double
j);
void
test( double
i, int
j);
int
test( int
i); //錯誤,非過載
};
|
前四個互為過載函式,最後一個和第一個不是過載函式。
2.隱藏:隱藏是指派生類的函式遮蔽了與其同名的基類函式。注意只要同名函式,不管引數列表是否相同,基類函式都會被隱藏。
例項程式碼如下:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include<iostream>
using
namespace
std;
class
A{
public :
void
fun1( int
i, int
j){
cout
<< "A::fun1()
: "
|