普通函數與函數模闆調用規則
調用規則如下:
1.如果函數模闆和普通模闆都可以實作,優先調用普通函數
2.可以通過空模闆參數清單來強制調用函數模闆
3.函數模闆也可以發生重載
4.如果函數模闆可以産生更好的比對,優先調用函數模闆
#include<iostream>
using namespace std;
//普通函數與函數模闆調用規則
//1.如果函數模闆和普通模闆都可以實作,優先調用普通函數
void myPrint(int a, int b)
{
cout << "調用的普通函數" << endl;
}
template<class T>
void myPrint(T a, T b)
{
cout << "調用的模闆" << endl;
}
//3.函數模闆也可以發生重載
template<class T>
void myPrint(T a, T b,T c)
{
cout << "調用重載的函數模闆" << endl;
}
void test01()
{
int a = 10;
int b = 10;
//myPrint(a, b);
//2.通過空模闆參數清單,強調調用函數模闆
myPrint<>(a, b);
//3.函數模闆也可以發生重載
myPrint(a, b,100);
//4.如果函數模闆可以産生更好的比對,優先調用函數模闆
char c1 = 'a';
char c2 = 'b';
myPrint(c1, c2);
}
int main()
{
test01();
system("pause");
return 0;
}