C 學習筆記22,普通函式過載(1)

2022-09-17 11:42:14 字數 1303 閱讀 2082

該博文僅用於交流學習,請慎用於不論什麼商業用途,本博主保留對該博文的一切權利。

博主部落格:

什麼是方法過載?

方法過載也能夠說是函式過載,函式的多型性。

詳細來說就是將函式或者方法的名稱用於多個函式。可是引數的型別或者引數的數目不同。

在這篇blog裡面我僅僅討論類外函式的過載。

比如乙個簡單的樣例:

#include #include using namespace std;

void printf(int i){

cout<

當傳遞的引數不一樣時,將呼叫相應的函式。

可是須要注意的是。有時候編譯器會進行自己主動轉換。

能夠看到,int自己主動轉換為了char型別。

假設不希望自己主動轉換,在c++11中支援刪除指定過載函式的方法.

#include #include using namespace std;

void printf(int i){

cout<

這樣就能夠阻止自己主動轉換了.

須要注意的是:一些看起來引數不一樣的函式時不能共存的。

比如void printf(const string s){

cout<

void printf(string &s){

cout<

從編譯器的角度去看printf(s);編譯器根本不知道你到底想要呼叫哪乙個函式。

這些情況,編譯器會覺得是錯誤。

可是對於過載引用引數。這個有點不一樣。比如

編譯器將自己主動呼叫最匹配的那乙個函式。

這個就是普通的函式過載,在類外的情況。

事實上這個能夠通過模板函式來取代,而且更加高效。

#include #include using namespace std;

templatevoid printf(t t){

cout

C 學習筆記22,普通函式過載(1)

該博文僅用於交流學習,請慎用於不論什麼商業用途,本博主保留對該博文的一切權利。博主部落格 什麼是方法過載?方法過載也能夠說是函式過載,函式的多型性。詳細來說就是將函式或者方法的名稱用於多個函式。可是引數的型別或者引數的數目不同。在這篇blog裡面我僅僅討論類外函式的過載。比如乙個簡單的樣例 incl...

C 學習筆記 函式過載

c 函式過載詳解 我們在開瓶瓶罐罐的時候,經常會遭遇因各種瓶口規格不同而找不到合適的工具的尷尬。所以有時候就為了開個瓶,家裡要備多種規格的開瓶器。同樣是開個瓶子嘛,何必這麼麻煩?於是有人發明了多功能開瓶器,不管啤酒瓶汽水瓶還是軟木塞的紅酒瓶都能輕鬆開啟。然而開瓶器的問題也會發生到程式設計中。比如我們...

C 學習筆記 函式過載

1 什麼是函式過載 c 允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函式的形參列表 引數個數 型別 順序 必須不同,常用來處理實現功能類似資料型別不同的問題。int add int a,int b double add double a,double b int main 注意 main函...