C 之函式模板

2021-08-08 07:12:09 字數 997 閱讀 6085

其實關於函式模板自己已經看了很多次了,只是實在太菜,用的很少以至於總是給忘了,現在簡單記下來。

函式模板是通用的函式描述,其通過將型別作為引數傳遞給模板,可使編譯器生成該型別的函式。

乙個簡單的函式模板例程:

#include 

using

namespace

std;

template

void swap(t &a, t &b);

int main()

template

void swap(t &a, t &b)

需要多個對不同型別使用同一種演算法的函式時,可以通過類似上面程式的模板。但並非所有的型別都使用相同的演算法,這時就可以像過載常規函式定義一樣過載模板定義。和常規過載一樣,被過載的模板的函式特徵標必須不同。

#include 

template

void swap(t &a, t &b);

template

void swap(t *a, t *b, int n);

void show(int a);

const

int lim = 8;

int main()

; int d2[lim] = ;

cout

<< "original arrays:\n";

show(d1);

show(d2);

swap(d1, d2, lim);

cout

show(d1);

show(d2);

return0;}

template

void swap(t &a, t &b)

template

void swap(t *a, t *b, int n)

}void show(int a)

cout

<< endl;

}

C 模板之函式模板

c 中分為函式模板和類模板,它們之間的相同點是都含有模板型參表,不同點在模板例項化的時候函式模板可以不用顯示的宣告模板類項,編譯器會自動幫我們匹配,而類模板則需要顯示定義出來,例如 template compare type type compare a,b template class queue...

C 模板之函式模板

泛型程式設計 編寫與型別無關的邏輯 是 復用的一種手段。模板是泛型程式設計的基礎 模板代表乙個函式家族,該函式與型別無關,在使用時被引數化,根據實參型別產生函式的特定型別版本 它本身不是類或函式 模板函式的格式 模板的例項化 產生模板特定型別的過程稱為函式模板的例項化 template t add ...

c 之模板函式 模板

模板就是建立通用的模具,大大提高復用性。c 的另一種程式設計思想是泛型程式設計,主要利用的就是模板。c 提供兩種模板機制 函式模板和類模板。宣告 template typename可以替換成class 函式模板 函式模板的作用 建立乙個通用函式,其函式返回值型別和形參型別可以不具體制定,用乙個虛擬的...