1. 程式人生 > >函數模板遇上函數重載

函數模板遇上函數重載

mes 參數 har 有一個 bsp 會有 類型參數 兩個 函數

當函數模板的名稱和普通函數的名稱一樣時,會發生函數重載。

 1 #include <iostream>
 2 using namespace std;
 3 
 4 //函數模板
 5 template <typename T>
 6 void myfun(T& x,T& y)
 7 {
 8     cout<<"我是函數模板"<<endl;
 9 }
10 
11 //普通函數
12 void myfun(int a,char c)
13 {
14     cout<<"我是普通函數"<<endl;
15 }
16 17 int main() 18 { 19 int x=10; 20 char y=Y; 21 22 myfun(x,y);//兩個輸入參數類型不一樣,且與普通函數的輸入類型一致,調用的是普通函數 23 myfun(y,x);//兩個輸入參數類型不一樣,但與普通函數的輸入類型不一致,調用的是普通函數,因為普通函數之間會有一個隱式的類型轉換 24 myfun(x,x);//兩個輸入參數類型一樣,調用的是函數模板,函數模板的本質是類型參數化,將嚴格按照類型匹配,不會進行自動類型轉換 25 26 return 0; 27 }

函數模板遇上函數重載