c 自學筆記010 函式的過載和函式模板

2021-09-13 15:46:49 字數 948 閱讀 1416

在自定義程式函式時,我們可能遇到這樣的問題,在某個函式定義的時候,如以下函式:

int he(int a,int b)//這是乙個求兩數之和的函式

這個函式在定義時,函式的返回值和引數已經固定了,只能是整型的返回值和引數。如果你想要比較兩個小數即實型的資料大小,直接呼叫該函式也許不會報錯,但可能損失精度,還有寫情況下甚至會報錯。這種情況,在c++中,允許你定義多個同名函式,只是資料型別和引數個數可以不同,這樣,當呼叫函式時,系統會根據你輸入的引數型別和引數的個數,選擇對應型別的已經定義的那乙個的函式來呼叫,這種同名不同引數型別和個數的函式在具體執行過程中根據使用者需要而起到不同作用的行為,叫做函式的過載。其實運算子也可以過載,比如》 和<< 兩個運算子本來是右移和左移運算子,但用在在cin >> 和cout << 輸入和輸出函式後面,就變成了提取和插入運算子。

如下例:

int fun(int a,int b)//求兩個整型資料之和

double fun(double a,double b)//求兩個雙精度浮點型資料之和

int fun(int a,int b,int c)//這是乙個取三個數中最大數的函式

具體實現:

template t fun(t a,t b,…,t x)

int main()

預期結果為:33

執行後跟預期一致。

值得注意,

template

t fun(t a,t b,…,t x)

以上格式是固定的,若還想定義其它函式模板,將重複上述格式,而不能把template 當成是宣告t為虛擬資料型別的語句,在其它函式定義時用t將報錯。簡而言之,它只能管緊跟在它後面定義的那個函式裡的t,表示t是乙個虛擬的資料型別。

template,模板。

python函式過載機制 python和函式過載

python物件導向 不可變引數用值傳遞,可變引數是引用傳遞,傳值的引數型別 數字,字串,元組,傳址的引數型別 列表,字典 快取穿透,快取雪崩,快取擊穿 我分享了 ascii utf 8 unicode都是個啥啊,為啥會亂碼啊?angelye 快來看吧!小公尺瀏覽器 arg會把位置引數轉化為tupl...

C語言自學筆記 C函式和指標

函式指標 主語是指標,即指向函式的指標。可以參照整型指標,字元型指標等概念來理解 函式指標實際上是函式 在記憶體中的起始位址。示例 int sub num1,num2 a,int宣告函式的返回值是整型 b,sub 通過 結合兩個物件使他們具有更高的運算優先順序,通知編譯器這是乙個指標型別的物件 c,...

C 入門筆記 函式的過載

函式過載的實質就是用同樣的名字再定義乙個有著不同引數但有著同樣用途的函式 類似於人格 多重身份 可以是引數個數的不同,也可以是引數資料型別上的不同 用的還是上個筆記裡的東西,現在我把主要的轉換步驟寫在了乙個函式裡,並且重新定義了乙個同名的但是引數型別不同的引數,在main裡我兩次輸入資料,一次是do...