#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...