函式過載(函式多型)

2021-08-03 20:32:43 字數 1074 閱讀 4271

函式的預設引數可以令我們使用具有不同引數數目的同乙個函式,而函式多型可以令我們使用多個相同名稱的函式。多型指的是多種形式,函式多型允許函式具有多種形式。c++使用上下文來確定使用的過載函式版本。

1. c++允許定義名稱相同的函式,前提是他們的特徵標不同,即引數數目或引數型別不同。例如,定義一組原型如下的函式:

void print(const

char * str , int width);

void print(double d , int width);

void print(long l , int width);

void print(int i , int width);

void print(const

char * str);

2. 使用被過載的函式時,需要在函式呼叫中使用正確的引數型別。例如,下面的語句:

unsigned int

year=3210;

print(year,6);

呼叫時,沒有與print函式匹配的函式原型,但是c++將會嘗試使用強制型別轉換強制進行匹配。但是上述print函式有三個可以強制轉換的目標函式,所以c++將拒絕這種函式呼叫,視為錯誤。

3. 一些看起來形式不同,但是實質相同的特徵標也是不能共存的。例如,下面的**:

double

cube(doube x);

double

cube(double & y);

編譯器在檢查函式特徵標時,將型別引用和型別本身視為同乙個特徵標。

4. 是特徵標,而不是函式返回值型別使得可以對函式進行過載。

比如,下面的語句:

long cube(doube x);

double cube(double x); //invalid

c++不允許此種情況出現,函式返回型別可以不同,但是特徵標必須不同。

C 多型 過載 函式隱藏

1.多型 派生類對基類的virtual方法進行覆蓋。注意 此時的函式原型與基類保持一致,即同名同引數型別。特徵是 1 不同的範圍 分別位於派生類與基類 2 函式名字相同 3 引數相同 4 基類函式必須有virtual關鍵字。5 動態編譯。基類 子類 執行 結果 結論 只有virtual 即多型 才會...

抽象 過載 多型(虛函式)

1 多型 向不同的物件傳送同乙個訊息,不同的物件會產生不同的行為 2 函式過載 對同一函式名定義多個函式。3 虛函式 c 中的虛函式的作用主要是實現了多型的機制。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式 4 純虛函式 在宣告虛函式時被初始化為0...

c 函式過載 多型特性

在同乙個作用域內,可以宣告幾個功能類似的同名函式,但是這些同名函式的形式引數 指引數的個數 型別或者順序 必須不同。不能僅通過返回型別的不同來過載函式。當您呼叫乙個過載函式或過載運算子時,編譯器通過把您所使用的引數型別與定義中的引數型別進行比較,決定選用最合適的定義。選擇最合適的過載函式或過載運算子...