2008年8月17日 星期日

c++ - 函數範本(Function template)

在c++中,多了一個範本(template)的功能,主要分為函式範本(Function template)與類別範本(class template)

而範本的功用在於不確定使用者輸入的型態時,所用來代表曖昧的變數,例如:
首先我們先介紹function template:

int sum (int a,int b)
{
 return a+b;
}

以上是當輸入是整數型態時,當使用者輸入是浮點數型態時,我們必需要再定義一個輸入為浮點數的函數。

float sum(float a,float b)
{
 return a+b;
}

其實這兩個幾乎一模一樣,就只有差在輸入與傳回的型態,這個時候我們就可以用template來取代它們


template <class T>
T sum(T a,T b)
{
 return a+b;
}

這是我把T想成記錄型態的變數,它可以是int,也可以是float。
要注意的是,在定義function時,在上一行必需加入template <class ???>關鍵字
而???就是之後可能是int或float的曖昧關鍵字。

參考資料:C++ Gossip: 函式範本(Function template)

沒有留言: