實現:在定義類的時候給它乙個或多個引數,這個些引數表示不同的資料型別。 -->抽象的類。
在呼叫類模板時, 指定引數, 由編譯系統依據引數提供的資料型別自己主動產生對應的模板類 -->詳細的類。
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 上述 在編譯...