一、函数模板和普通函数在一起调用规则
1.函数模板可以像普通函数一样被重载
2.当函数模板和普通函数都满足调用要求时,c++编译器优先考虑普通函数
3.如果函数模板可以产生一个更好的匹配,那么选择模板
4.可以通过空模板实参列表的语法限定编译器只能通过模板匹配
二、example
1.示例:
//1
template<class T>
void Print(T a){
cout << a << endl;
}
//2
template<class T>
void Print(T a, T b){
cout << a << " " << b << endl;
}
- 示例
//函数模板
template<class T>
void Print(T a){
cout << a << endl;
}
//普通函数
void Print(int a)
{
cout << a << endl;
}
void test()
{
int tmp = 3;
double f = 2.2;
Print(tmp); //调用普通函数
Print(f); //调用模板函数
}
- 示例
//函数模板
template<class T>
void Print(T a){
cout << a << endl;
}
//普通函数
void Print(int a)
{
cout << a << endl;
}
void test()
{
int tmp = 3;
double f = 2.2;
Print(tmp); //调用普通函数
Print(f); //调用模板函数
}
- 示例
//函数模板
template<class T>
void Print(T a){
cout << a << endl;
}
//普通函数
void Print(int a)
{
cout << a << endl;
}
void test()
{
int tmp = 3;
Print(tmp); //调用普通函数
Print<>(tmp); //调用模板函数
}