函數模板遇上函數重載
阿新 • • 發佈:2018-03-05
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 }
函數模板遇上函數重載