初探C 類模版學習筆記

2022-07-17 03:00:11 字數 1685 閱讀 9078

實現:在定義類的時候給它乙個或多個引數,這個些引數表示不同的資料型別。                              -->抽象的類。

在呼叫類模板時, 指定引數, 由編譯系統依據引數提供的資料型別自己主動產生對應的模板類                   -->詳細的類。

c++的類模板的寫法例如以下:

template 《型別參數列》        //型別參數列的寫法就是:class 型別引數1, class 型別引數2, …

class 類模板名

;

類模板裡的成員函式, 如在類模板外面定義時,

template 《型參數列》

返回值型別 類模板名《型別引數名列表》::成員函式名(參數列)

用類模板定義物件的寫法例如以下:

類模板名 《真實型別參數列》  物件名(建構函式實際參數列);

假設類模板有無參建構函式, 那麼也能夠僅僅寫:

類模板名 《真實型別參數列》  物件名;

template class pair;

bool operator < (const pair& p) const;

};template//在類外定義 pair的成員函式 operator <

bool pair::operator<( const pair& p) const

pair類模板的使用:

int main()

//成員函式模板

};int main()

template class carray       

};

carraya2;

carraya3;

注意:

carray和carray全然是兩個類

這兩個類的物件之間不能互相賦值

template class a ;

class b:public a;// 類a是個類模板,a是模板類

int main()

template class a ;

template class b:public a;

int main()

類模板a   ->例項化  模板類a->派生   類模板b   ->例項化  模板類b

此時b中有成員

{int v1;

double  v2;

t v;

class a ;

template class b:public a ;

int main()

沒什麼可說的。在繼承a的基礎上新增了t型別的成員。

#include using namespace std;

template class a

;template class b:public a;

int main()

{ bb;

b*pb = &b;

b.v1 = 1;

b.v3 = 3;

b.v2 = 2.2;

b.v4 = 4.4;

cout << pb->v1bb 時。b有自身的成員int v3 、double v4 也有繼承a的成員int v1 和 double v2

初探C 類模版學習筆記

實現 在定義類的時候給它乙個或多個引數,這個些引數表示不同的資料型別。抽象的類。在呼叫類模板時,指定引數,由編譯系統依據引數提供的資料型別自己主動產生對應的模板類 詳細的類。c 的類模板的寫法例如以下 template 型別參數列 型別參數列的寫法就是 class 型別引數1,class 型別引數2...

C 筆記(類模版)

模版類中有模版函式偏特化,有模版泛化,全特化,過載 模版函式呼叫優先順序 全特化,特化,泛化 泛化 template struct tc void functest1 static int m stc 宣告乙個靜態成員變數 template int tc m stc 50 定義靜態成員變數,偏特化 ...

c 模版筆記

一 一般模板函式形式 include using namespace std templae 若有多個參引數可如此定義即可 template 定義不定型別 const type mymax const type valueone,const type valuetow int main 上述 在編譯...