C 函式模板

2021-09-26 20:16:37 字數 513 閱讀 1303

1函式模板可以允許以泛型的方式編寫程式

template

或   template

void swap( name & a, name & b)

name temp;

temp = a;

a = b;

b = temp;

2.這種寫法有一定問題,當a為陣列的時候,傳入的引數是陣列的位址。

3.函式模板並不會生成函式定義,當編譯的時候,編譯器才會生成乙個例項。

4.關鍵字  decltype

template < class t1,class t2 >

void ft( t1 x, t2 y )

decltype( x + y ) xpy = x + y;

括號裡面的( x+ y ) 是用來獲取相加之後是什麼型別,那麼xpy就是什麼型別。

可結合typedef來用

typedef decltype(x+y) xytype ;

xytype xpy = x+ y;

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