C 類模版詳解

2021-06-12 02:33:39 字數 875 閱讀 9744

有時,有兩個或多個類,其功能是相同的,僅僅是資料型別不同,如下面語句宣告了乙個類:

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 ...