您的位置:首页 > 其它

函数模板在c++里面的坑

2015-08-23 19:34 316 查看
摘要: 函数重载可以用函数模板来实现,但是在用函数模板来做的时候发现不能使用命令空间using namespace std;这是我在stack overflow查到的结果

1、函数重载

//
//  main.cpp
//  inlinefunction
//
//  Created by geek on 15/8/22.
//  Copyright (c) 2015年 geek. All rights reserved.
//
//函数重载,具有相同函数名不同函数参数
#include <iostream>
using namespace std;
int max(int num1,int num2){
if(num1>num2){
return num1;
}else{
return num2;
}
}
double max(double num1,double num2){
if(num1>num2){
return num1;
}else{
return num2;
}
}
double max(double num1,double num2,double num3){
return max(num1,max(num2,num3));

}
int main(){
int num1,num2;
cout<<"请输入2个整数";
cin>>num1>>num2;
cout<<"较大整数为:"<<max(num1,num2);
double num3,num4;
cout<<"请输入2个浮点数";
cin>>num3>>num4;
cout<<"较大整数为:"<<max(num3,num4);
double num5,num6,num7;
cout<<"请输入3个浮点数";
cin>>num5>>num6>>num7;
cout<<"较大整数为:"<<max(num5,max(num6,num7));
return 0;
}

2、函数模板

//
//  main.cpp
//  template
//
//  Created by geek on 15/8/22.
//  Copyright (c) 2015年 geek. All rights reserved.
//
//在使用模函数模版时不能使用using namespace std;
#include <iostream>
template <typename T>
T max(T num1,T num2){
if(num1>num2){
return num1;
}else{
return num2;
}

}
int main(){
printf("%d",max(5,7));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: