函数模板和函数的次序

文章目录


在有多个函数和函数模板名字相同的情况下,编译器如下处理一
条函数调用语句
  1. 先找参数完全匹配的普通函数(非由模板实例化而得的函数)。
  2. 再找参数完全匹配的模板函数。
  3. 再找实参数经过自动类型转换后能够匹配的普通函数。
  4. 上面的都找不到,则报错
#include<iostream>
using namespace std;
template <class T>
T Max(T a,T b){
	cout<<"TemplateMax"<<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(void){
	int i = 4,j = 5;
	Max(1.2,3.4);
	Max(i,j);
	Max(1.2,3);
	Max(3,1.2);
	return 0;
}

MyMax
TemplateMax
TemplateMax2
TemplateMax2

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务