函式範本(Function template)

函式範本(Function template)可以適用於不同資料型態的參數列,但實作內容相同的函式,以下面的smaller()函式為例,除了參數列資料型態不同之外,實作的概念幾乎相同,可以不用為此進行函式多載,使用template關鍵字建立函式範本,並使用class來取代資料型態宣告字,以下為簡單示範。

template <class T> 
T smaller(T a, T b); 

int main() { 
    int temp1 = smaller(3,5);       //temp1=3
    float temp2 = smaller(7.3,2.5); //temp2=2.5
    return 0;
}

template <class T> 
T smaller(T a, T b) {
    if(a < b){
        return a;
    }
    else{
        return b;
    }
}