用相同的類模板可以組建任何型別的物件集合。在傳統c++中,可能有乙個浮點數類或者乙個整數類,如果使用類模板,可以定義乙個對兩者都適用的類number。
類模板說明
類模板說明的一般形式是:
template 《型別形參表》
class 《類名》
; template 《型別形參表》
《返回型別》 《類名》 《型別名錶》::《成員函式1>(形參表)
template 《型別形參表》
《返回型別》 《類名》 《型別名錶》::《成員函式2>(形參表) …
12.3.2 使用類模板
與函式模板一樣,類模板不能直接使用,必須先例項化為相應的模板類,定義該模板類的物件後才能使用。
建立類模板後,可用下列方式建立類模板的例項:
《類名》 《型別實參表》 《物件表》;
其中,《型別實參表》應與該類模板中的《型別形參表》匹配。《型別實參表》是模板類(template class),《物件》是定義該模板類的乙個物件。
使用類模板可以說明和定義任何型別的類。這種類被稱為引數化的類。如果說類是物件的推廣,那麼類模板可以說是類的推廣。
注意:類模板與模板類的區別 。
乙個簡單的類模板程式(求兩個任意型別數的和)。
template
class a
; template
a::a()
template
a::a(t _a,t _b)
template
t a::sum()
void main()
程式已經在vc6.0下除錯通過,以上**在乙個檔案中,別把類的宣告放在乙個.h中把實現放在.cpp中,類模板不支援分離只能是類的宣告和定義放在同乙個檔案中。
C 類模板和模板類
類模板的意義和函式模板的意義是一樣的。template 宣告乙個模板,虛擬型別名為t。注意 這裡沒有分號。class compare 類模板名為compare t max t min 不能這樣定義類模板中的成員函式而 應當寫成類模板的形式 template tcompare max compare ...
C 模板類和類模板
為什麼要使用類模板?例項化後的兩個模板類復用了相同的資料結構演算法,但是卻可以操作不同型別的資料元素,這就是類模板的好處。在c 的template中很多地方都用到了typename與class這兩個關鍵字,有時候這兩者可以替換,那麼這兩個關鍵字是否完全一樣呢?事實上class用於定義類,在模板引入c...
C 類模板和模板類
1 c 的template中的很多地方typename與class這兩個關鍵字 template在模板定義語法中關鍵字class與typename的作用完全一樣 2 類模板和模板類的概念 1 乙個類模板 類生成類 允許使用者為類定義一種模式,使得類中的某些資料成員,預設成員函式的引數,某些成員函式的...