C C 模板與泛型 typename

2022-08-13 06:21:10 字數 1318 閱讀 1522

#include using namespace std;

int sum(int a, int b)

int sub(int a, int b)

//函式指標做函式引數

//定義函式指標型別

typedef int(*funtype)(int, int);

void testfunc(int i, int j, funtype func)

int main()

//testfunc(3, 4, mf);

template void testfunc(const t& i, const t& j, f func)

//使用模板引數為函式指標的函式模板

//可呼叫物件為引數

#include #include using namespace std;

int mf(int tmp1, int tmp2)

//函式指標做函式引數

//定義函式指標型別

typedef int(*funtype)(int, int);

void testfunc(int i, int j, funtype func)

template void testfunc(const t& i, const t& j, f func)

//可呼叫物件所代表的類

class tc

tc(const tc& t)

int operator()(int v1, int v2) const };

int main()

// 類模板 類模板名後必須用<>來提供額外的資訊 <>表示這是乙個模板

#include #include using namespace std;

templateclass arr

;int main()

//函式模板: 老標準只能為類模板提供預設模板引數,c++11新標準可以為函式模板提供預設引數

#include #include using namespace std;

//可呼叫物件所代表的類

class tc

tc(const tc& t)

int operator()(int v1, int v2) const };

template void testfunc(const t& i, const t& j, f func=f())

int main()

模板與泛型程式設計

模板是泛型變成的基礎。泛型程式設計 編譯與型別無關的 是一種復用的方式,模板分為模板函式和模板類。模板函式是乙個通用的函式模板,而不是為每一種型別定義乙個新函式,乙個函式模板就像乙個公式,針對不同型別函式生成不同的函式版本。關鍵字 template 以 template 開始,後面跟乙個模板引數列表...

模板與泛型程式設計

泛型程式設計 編寫與型別無關的通用 是 復用的一種手段。模板是泛型程式設計的基礎。函式模板代表了乙個函式家族,該函式模板與型別無關,在使用時被引數化,根據實參型別產生函式的特定型別版本。模板的格式 template 返回值型別 函式名 引數列表 模板分為類模板和函式模板 模板它本身並不是函式,是編譯...

模板與泛型程式設計

一 函式模板 模板定義以關鍵字template開始,後跟乙個模板引數列表,在模板定義中,模板引數列表不能為空。模板型別引數 型別引數前必須使用class或typename關鍵字。非型別模板引數 表示乙個值而不是乙個型別 陣列引用形參 arr兩端的括號必不可少 void print int arr 1...