所謂類模板,實際上是建立乙個通用類,其資料成員、成員函式的返回值型別和形參型別不具體指定,用乙個虛擬的型別來代表。使用類模板定義物件時,系統會實參的型別來取代類模板中虛擬型別從而實現了不同類的功能。
定義乙個類模板與定義函式模板的格式類似,必須以關鍵字template開始,後面是尖括號括起來的模板引數,然後是類名,其格式如下:
template
<
typename 型別引數》
class 類名 ;
或者template
<
class 型別引數》
class 類名
;
1.template:是乙個宣告模板的關鍵字,它表明宣告乙個模板
2.型別引數:通常用c++識別符號表示,如t、type等,實際上是乙個虛擬的型別名,現在未指定它是哪一種具體的型別,但使用類模板時,必須將型別引數例項化。
3. typename和class的作用相同,都是表示其後面的引數是乙個虛擬的類名(即型別引數).
在類宣告中,欲採用通用資料型別的資料成員、成員函式的引數或返回型別前面需要加上型別引數。
如建立乙個用來實現求兩個數最大值的類模板
template
<
typename t>
//模板宣告,其中t為型別引數
class
compare
t max()
private
: t x,y;
};
用類模板定義物件時,採用以下形式:
類模板名《實際型別名》物件名[
(實參表列)
];
因此,使用上面求最大值的型別模板的主函式可寫成:
int
main()
類模板和模板類
c 提供的函式模板可以定義乙個對任何型別變數進行操作的函式,從而大大增強了函式設計的通用性。使用函式模板的方法是先說明函式模板,然後例項化成相應的模板函式進行呼叫執行。函式模板的一般說明形式如下 template 模板形參表 返回值型別 函式名 模板函式形參表 其中,模板形參表 可以包含基本資料型別...
C 模板類和類模板
用相同的類模板可以組建任何型別的物件集合。在傳統c 中,可能有乙個浮點數類或者乙個整數類,如果使用類模板,可以定義乙個對兩者都適用的類number。類模板說明 類模板說明的一般形式是 template 型別形參表 class 類名 template 型別形參表 返回型別 類名 型別名錶 成員函式1 ...
C 類模板和模板類
類模板的意義和函式模板的意義是一樣的。template 宣告乙個模板,虛擬型別名為t。注意 這裡沒有分號。class compare 類模板名為compare t max t min 不能這樣定義類模板中的成員函式而 應當寫成類模板的形式 template tcompare max compare ...