有時,有兩個或多個類,其功能是相同的,僅僅是資料型別不同,如下面語句宣告了乙個類:
class compare_int
int max( )
int min( )
float min( )
numtype max( )
numtype min( )
numtype max( )
numtype min( )
歸納以上的介紹,可以這樣宣告和使用類模板:先寫出乙個實際的類。由於其語義明確,含義清楚,一般不會出錯。
將此類中準備改變的型別名(如int要改變為float或char)改用乙個自己指定的虛擬型別名(如上例中的numtype)。
在類宣告前面加入一行,格式為
template //注意本行末尾無分號
class compare
; //類體
用類模板定義物件時用以下形式:
類模板名《實際型別名》 物件名;
類模板名《實際型別名》 物件名(實參表列);
如comparecmp;
comparecmp(3,7);
如果在類模板外定義成員函式,應寫成類模板形式:
template
關於類模板的幾點說明:類模板的型別引數可以有乙個或多個,每個型別前面都必須加class,如
template
class someclass
;在定義物件時分別代入實際的型別名,如
someclassobj;
和使用類一樣,使用類模板時要注意其作用域,只能在其有效作用域內用它定義物件。
模板可以有層次,乙個類模板可以作為基類,派生出派生模板類。
**:
C 筆記(類模版)
模版類中有模版函式偏特化,有模版泛化,全特化,過載 模版函式呼叫優先順序 全特化,特化,泛化 泛化 template struct tc void functest1 static int m stc 宣告乙個靜態成員變數 template int tc m stc 50 定義靜態成員變數,偏特化 ...
C 模版類 詳細講解
直接先說一下模版類的定義 template 模版型別1,模版型別2.class 類名 乙個小示例如下 templateclass a t getdata 模版函式,返回型別為t的值 以上的模版函式是在類的內部定義的,如果我們要定義乙個定義在類外的類模版成員函式的話,我們應該將這樣的類模版成員函式定義...
C 基本操作 模版類
連續的上機課,但這次的題目真的不難 關於模版類,一天就寫好了 中位數給出乙個整數向量,有乙個長度為k的滑動視窗自左向右在該向量上滑動,每次向右移動乙個數字,計算當前視窗中數字的中位數 輸入 1,9,2,3,1 k 3 輸出 9,2,3 include include using namespace ...