C 函式模板

2022-02-10 00:43:25 字數 1985 閱讀 1426

所謂模板,就是模板,但與我們所熟知的模子不同,模板用於生成不同的東西(函式或者類)。在c++中有函式模板和類模板。今天我們來**一下函式模板。

場景:我們需要乙個函式來做加法運算又或者我們需要自己實現print函式,那怎麼處理傳入引數不同(double ? int ? char ? short ? string ?)的情況呢?

你或許會脫口而出「函式過載」,但這意味著你至少要寫兩個以上的函式去支援你的引數型別和個數的變化,right?而且這種做法不支援擴充套件,如果有其他的需求,就必須再增加過載函式,這是比較愚蠢的,相信你也這麼認為。那麼,更好的辦法是什麼呢?函式模板。

我們來看例子

c 函式模板

include using namespace std template t max t a,t b,t c int main int main int i1 185,i2 76,i3 567,i double d1 56.63,d2 90.23,d3 3214.78,d long g1 67854...

c 函式模板

關鍵字template總是放在模板的電腦關於與宣告的最前面,關鍵字後面是用逗號分隔的模板參數列,該列表是模板參數列,不能為空。模板引數可以是乙個模板型別引數,它代表了一種型別 也可以是乙個模板非型別引數,它代表了乙個常量表示式。模板型別引數由關鍵字class或typename後加乙個識別符號構成。在...

C 函式模板

c 提供了函式模板 function template 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別...