1.如果模板函數和普通函數都可以實現,則優先調用普通函數。
2.可以通過空模板參數列表來強制調用模板函數;
3.函數模板也可以重載;
4.如果函數模板可以產生更好的匹配,優先調用函數模板;
#include<iostream> using namespace std; int myAdd(int a, int b) { cout << "調用普通函數" << endl; return a + b; } template<class T> T myAdd(T a, T b) { cout << "調用函數模板" << endl; return a + b; } template<class T> T myAdd(T a, T b,T c) { cout << "調用重載函數模板" << endl; return a + b; } void test() { int a = 10; int b = 20; //1這里調用普通函數 cout << myAdd(a, b) << endl; //2這里調用函數模板 cout << myAdd<>(a, b) << endl; //3這里調用重載函數模板 cout << myAdd(a, b, 100) << endl; //4這里調用函數模板 cout << myAdd('a', 'b') << endl; } int main() { test(); system("pause"); return 0; }