天天看點

C++普通函數與函數模闆調用規則

普通函數與函數模闆調用規則

調用規則如下:

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;
}