一般函式的過載:函式過載是指在同一作用域內,可以有一組具有相同函式名,不同引數列表的函式,這組函式被稱為過載函式。注:不將返回型別考慮到函式過載中。
虛函式的過載:過載乙個虛函式時,要求函式名、返回型別、引數個數、引數型別和順序完全相同。否則會出現以下問題:
1)如果僅僅返回型別不同,其餘相同,則c++認為是錯誤過載,因為只靠返回型別不同的資訊進行函式匹配是含糊的。
2)如果函式原型不同,僅函式名相同,則c++認為是一般函式過載,因而丟失虛特性。
舉例分析:
#include
using
namespace
std;
class a
virtual
void vf2()
virtual
void vf3()
void fun()
};class b:public a
void vf2(int x)
//char vf3() {};僅返回型別不同,錯誤過載
void fun()
};int main()
c 函式過載 多型特性
在同乙個作用域內,可以宣告幾個功能類似的同名函式,但是這些同名函式的形式引數 指引數的個數 型別或者順序 必須不同。不能僅通過返回型別的不同來過載函式。當您呼叫乙個過載函式或過載運算子時,編譯器通過把您所使用的引數型別與定義中的引數型別進行比較,決定選用最合適的定義。選擇最合適的過載函式或過載運算子...
C 函式的高階特性 函式過載
對比於c 語言的函式,c 增加了過載 overloaded 內聯 inline const 和virtual 四種新機制。其中過載和內聯機制既可用於全域性函式也可用於類的成員函式,const 與 virtual 機制僅用於類的成員函式。1.過載 overloaded 過載的理由 1 在c 程式中,可...
C 函式的高階特性 函式過載
對比於c 語言的函式,c 增加了過載 overloaded 內聯 inline const 和virtual 四種新機制。其中過載和內聯機制既可用於全域性函式也可用於類的成員函式,const 與 virtual 機制僅用於類的成員函式。1.過載 overloaded 過載的理由 1 在c 程式中,可...