C 模板類和類模板

2021-05-25 17:55:28 字數 885 閱讀 9542

用相同的類模板可以組建任何型別的物件集合。在傳統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 乙個類模板 類生成類 允許使用者為類定義一種模式,使得類中的某些資料成員,預設成員函式的引數,某些成員函式的...