0
点赞
收藏
分享

微信扫一扫

如何匹配最合适的函数(函数模板)


匹配规则:

1.先找 参数完全匹配的普通函数

2.再找参数完全匹配的模板函数

3.最后找实参进行自动类型转换后可以匹配的普通函数

4.以上都找不到,报错

/**************************函数模板*/
#include <iostream>
using namespace std;

template <class T>
T Max(T a,T b){
cout<<"TempleteMax" <<endl;
return 0;
}
template <class T,class T2>
T Max(T a,T2 b){
cout<<"TemplateMax2"<<endl;
return 0;
}
double Max(double a, double b){
cout<<"MyMax"<<endl;
return 0;
}

int main()
{
int i=4,j=5;
Max(1.2,3.4);//输出MyMax.优先找用户自定义的函数,而非模板实例化的函数
Max(i,j);//输出TemplateMax
Max(1.2,3);//输出TemplateMax2
return 0;

}

注意:匹配函数模板时,不能自动类型转换。

举报

相关推荐

0 条评论