學會如何初始化 !
類模板靜態資料成員分兩種情況:
第一種不依賴與模板型別引數
第二種依賴模板型別引數
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 編譯器在編譯時刻能夠將函式模板例項化,根據同乙個模板建立出不同的具體函式,這些函式之間的不同之處主要在於函式內部一些資料型別的不同,而由模板建立的函式的使用方法與一般函式的使用方法相同。函式模板的定...