實現:在上課時間的定義給它的乙個或多個引數,這些引數代表了不同的資料型別。 -->抽象的類。
在呼叫類模板時, 指定引數, 由編譯系統依據引數提供的資料型別自己主動產生對應的模板類 -->詳細的類。
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 中將泛型思想引入到了類,實現了類模板,使得類的實現不再關注資料元素的具體型別,而只關注類所需實現的功能,適用於編寫資料結構相關 c 中的類模板以相同的方式處理不同的型別,在類的宣告前使用template關鍵字標識將要泛型程式設計,用於說明類中使用的t是泛指型別,類模板只能顯式指定具體型別,無法像...
C 學習筆記 類模板
類模板的例項化必須由程式設計師在程式中顯式地制定。定義模板類物件的格式 類模板名 型別實參表 物件名 實參表 舉個栗子 include using namespace std const int size 10 template typename atype 定義類模板 class atype at...
C 基礎學習筆記 類模板
一 類模板 1 類模板作用 語法 template typename t class 類名 解釋 include include using namespace std class person tyname name tyage age intmain 2 類模板與函式模板的區別 1.類模板無法使...