普通函式與函式模板的區別

2021-10-24 08:26:30 字數 409 閱讀 7664

普通函式與函式模板的區別

普通函式呼叫時可以發生自動型別轉換(**型別轉換)

函式模板呼叫時,如果利用自動型別推導,不會發生隱式型別轉換

如果利用顯示指定型別的方式們可以發生隱式型別轉換

#include

using namespace std;

//普通函式與函式模板區別

//1.普通函式呼叫可以發生隱式型別轉換

//2.函式模板 用自動型別推導 ,不可以發生隱式型別轉換

//3.函式模板用顯示指定型別,可以發生隱式型別轉換

//普通函式

int myadd01(int a, int b)

//函式模板

template

t myadd02(t a,t b)

void test01()

類模板的成員函式與普通函式模板的區別

類模板的成員函式本身也是函式模板。像任何其他函式模板一樣,需要使用類模板的成員函式產生該成員的例項化。與其他函式模板不同的是,在例項化類 板形參由呼叫該函式的物件的型別確定。例如,當呼叫 queue型別物件的 push 成員時,例項化的 push 函式為 void queue push const ...

C 函式模板與普通函式

當我們要對不同的資料型別進行同樣的操作的時候,我們可能要分別編寫幾個函式去對應資料型別進行相似的操作,比如說交換兩個資料 我們使用函式模板就會大大提高效率 示例 include using namespace std template typename t 宣告乙個模板,t是乙個通用資料型別 或te...

普通函式與函式模板的呼叫規則

1 優先呼叫普通函式 2 通過空模板引數列表,強制呼叫函式模板 3 函式模板可以發生過載 4 若函式模板可以產生更好的匹配,優先呼叫函式模板 include using namespace std 1 優先呼叫普通函式 2 通過空模板引數列表,強制呼叫函式模板 3 函式模板可以發生過載 4 若函式模...