06函式模版的靜態成員

2021-10-02 03:42:03 字數 1515 閱讀 7544

學會如何初始化 !

類模板靜態資料成員分兩種情況:

第一種不依賴與模板型別引數

第二種依賴模板型別引數

template

<

typename t>

class

a

template

<

typename t>

int a

::s =

111;

//模板類的靜態成員變數初始化,對任意型別t的都有乙份通用的值

template

<

>

int a<

int>

::s =2;

//也可以特化,給出t型別,只對t是int生效

template

<

typename t>

class

a

template

<

>

float a<

float

>

::s2 =

333.33f

;//只能特化

**

#include

using

namespace std;

template

<

typename t>

classa;

//1.模板類的靜態成員變數初始化, 對任意型別t的都有乙份通用的值

template

<

typename t>

int a

::s =

111;

//2.特化的方式,只有該型別可以獲取此值

template

<

>

int a<

int>

::s =

222;

//也可以特化,給出t型別, 只對t是int生效

//s2只能特化

template

<

>

float a<

float

>

::s2 =

333.33f

;template

<

>

char a<

char

>

::s2 =

'a';

template

<

>

int a<

int>

::s2 =

666;

intmain()

output

111

222111

111333.33

666a

函式模版 特化 模版指標

函式特化在下面做了大量的補充 類模版 函式模版與類模版的乙個不同點是 類模版如 template class a 那麼 a或 a是乙個類 即a是模版,a後面帶著則是乙個類 函式模版如 template t compare const t a,const t b 那麼compare生成compare ...

c 函式模版

如果需要多個將同乙個演算法用於不同型別的函式,請使用模版 函式模版 要讓編譯器知道程式需要乙個特定形式的交換函式,只需在程式中使用swap 函式即可,編譯器將檢查所使用的引數型別,並生成相應的函式,1.template void swap anytype a,anytype b anytype te...

函式模版和模版函式,類模版和模版類的區別

什麼是函式模板和類模板 函式模板是一種抽象函式定義,它代表一類同構函式。通過使用者提供的具體引數,c 編譯器在編譯時刻能夠將函式模板例項化,根據同乙個模板建立出不同的具體函式,這些函式之間的不同之處主要在於函式內部一些資料型別的不同,而由模板建立的函式的使用方法與一般函式的使用方法相同。函式模板的定...