函數模板在c++裏面的坑

一、函數重載ios

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

二、函數模板函數

//
//  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;
}
相關文章
相關標籤/搜索