樣板函式與樣板參數型別:
使用時機:程式設計者需要設計好幾個函式,有時,這些函式除了輸入的參數型別或回傳型別不同外,其函式內容是相同的。為了避免重複撰寫同樣的函式內容,這時就可以利用樣板函式,避免浪費時間,也可簡化程式的寫法。說明如下:
利用以下程式碼宣告樣板參數型別:
template <class 樣板參數型別> //這裡的class,指的不是類別,而是樣板參數型別
或是:
template <typename 樣板參數型別>
註一:其中,樣板參數型別是自訂的代號,只要是英文字母開頭就可以。如:Q、K1、jack、bbbddd12345,隨設計者高興。
註二:上述,一定要寫在主程式之外!
利用宣告樣板參數型別,可以建立樣板函式。舉例:
template <typename Q12> //宣告樣板參數型別Q12
void test(Q12 q) //建立樣板函式test
{
for(int i=0;i<2;i++){cout<<q<<endl;}
}
int main( ) //主程式在這裡
{
test("test,");
test(5);
}
輸出結果為:
test,
test,
5
5
從以上可以知道,函式test的輸入參數是不限型別的,任何型別都可以輸入進去。上例說明了string、int都能輸入進去,這樣就不用為string、int各寫一個函式,此乃樣板函式的效用所在。
留言列表