模板的特化

2022-07-29 05:18:11 字數 838 閱讀 3357

模板分為類模板和函式模板,特化分為全特化和偏特化(特化是對模板的特化,因此必須存在模板才可以進行特化)

類:

1 template2

class

test 3

6private

: 7

t1 a;

8t2 b;

9};

1011 template<>

12class test

13

16private

: 17

inta;

18char

b;

19};

2021 template 22

class test

23

26private

: 27

char

a;

28t2 b;

29 };

函式:

1

//模板函式

2 template3

void

fun(t1 a , t2 b) 4

78//全特化

9 template<>

10void fun(int a, char

b)

11

1415

//函式不存在偏特化:下面的**是錯誤的

16/*

17template

18void fun(char a, t2 b) 19

22*/

模板的特化(特化和偏特化)

模板特化可以分為全特化和偏特化 特化可以為類增加成員函式或成員變數 模板特化有三種型別,一是特化為絕對型別,二是特化為引用 指標型別,三是特化為另外乙個模板類 include include include usingnamespacestd template classt tmaxr tt1,tt...

C 模板 模板特化 模板偏特化

模板是c 的乙個重要特性 使用模板 可以極大的減少類似功能 的編寫 這可以看做是c 相較於c的進步 因為這一特性在c中是不容易達到的 語言層面不支援 模板的關鍵字是 template 簡單的模板應用 template class test int main 使用模板的類在例項化時需要指明模板引數型別...

模板的特化

首先要再提一下什麼是模板,模板有什麼作用?模板是泛型程式設計的基礎。所謂泛型程式設計是編寫與型別無關的邏輯 是一種復用的方式,模板分為模板函式和模板類。編譯呼叫模板函式或模板類時,編譯器會根據傳遞的引數自動推演出模板形參的型別,並自動生成對應的 這是前面我們已經提到過的,下面我們來了解一下模板的特化...