初見C 函式模板

2021-10-06 23:05:32 字數 1065 閱讀 4790

函式模板 function template

可以將資料型別作為引數。

自己的理解:應用在實現方法相似的操作中。例如排序不同型別的陣列,交換不同型別的兩個數,但普通的swap函式需要引數與資料型別相匹配,實現多種資料型別的swap可能需要多個swap函式,int_swap,double_swap…或者進行函式的過載(overload),比較繁瑣。而函式模板可以實現乙個函式接納多種資料型別,並做同一件事。

warning:函式的過載 !=函式模板

//函式模板的宣告 關鍵字typename = class(舊版本), t可以重複使用,生命週期是這個函式

//正常宣告函式 void... 引數可以為為自定義的 引數型別 也可以是 其他的資料型別

template

<

typename t>

void

swap_show

(t&, t&);

//函式的定義 將template 置於第一行說明是乙個函式模板 也可以放在同一行

template

<

typename t>

void

swap_show

(t& a, t& b)

下來是乙個簡單的應用

#include

using

namespace std;

//函式模板宣告

template

<

typename t>

void

swap_show

(t&, t&);

intmain()

//函式模板的定義

template

<

typename t>

void

swap_show

(t& a, t& b)

執行結果:

實現了int型別的交換以及double型別的交換

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