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

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


你可能感兴趣的:(函数模板在c++里面的坑)