C 模板知識小結

2021-09-22 12:15:06 字數 2036 閱讀 9373

模板定義:模板就是實現**重用機制的一種工具,它可以實現型別引數化,即把型別定義為引數, 從而實現了真正的**可重用性。模版可以分為兩類,乙個是函式模版,另外乙個是類模版。
由於類模板包含型別引數,因此又稱為引數化的類。如果說類是物件的抽象,物件是類的例項,則類模板是類的抽象,類是類模板的例項。

函式模板:template t fun_name(const t&, const t&);

類模板:template class class_name

類模板作用域在模板定義的整個過程

類模板不能重複

可以只宣告,不定義

形參必需帶上typename 或者 class

int a = fun_name(3, 4);

class_namec1;

例項化時機在函式呼叫或者類例項構建時例項化模板

函式模板的一般定義形式是:

template《型別形式參數列》返回型別 functionname(形式參數列)

其中的型別形式參數列可以包含基本資料型別,也可以包含類型別。如果是類型別,則需加字首class。

類模板的一般說明形式是:

template《型別形式參數列》 class

classname

;template

《型別形式參數列》返回型別 classname

《型別名錶》::memberfuncname1(形式參數列)

template

《型別形式參數列》返回型別 classname

《型別名錶》::memberfuncname2(形式參數列)

...template

《型別形式參數列》返回型別 classname

《型別名錶》::memberfuncnamen(形式參數列)

其中的型別形式參數列與函式模板中的意義一樣。後面的成員函式定義中,classname《型別名錶》中的型別名錶,是型別形式引數的使用。

2.函式模板與模板函式的區別

3.類模板和模板類的區別

與類和函式的定義不同,類模板和函式模板的定義一般放在標頭檔案中。

使用類模板的方法為

在程式開始的標頭檔案中說明類模板的定義。

在適當的地方建立乙個模板類的例項,即乙個實實在在的類定義,同時建立該模板類的物件。

有了物件名,以後的使用就和通常一樣。但要記住,你規定了什麼型別的模板類,在使用成員函式時,所賦的實參也要對應該型別。

歸納的介紹,可以這樣宣告和使用類模板:

先寫出乙個實際的類。由於其語義明確,含義清楚,一般不會出錯。

將此類中準備改變的型別名(如int要改變為float或char)改用乙個自己指定的虛擬型別名(如上例中的numtype)。

在類宣告前面加入一行,格式為

template <class 虛擬型別引數>,如

template //注意本行末尾無分號

class compare

; //類體

用類模板定義物件時用以下形式:

類模板名《實際型別名》 物件名;

類模板名《實際型別名》 物件名(實參表列);

如comparecmp;

comparecmp(3,7);

如果在類模板外定義成員函式,應寫成類模板形式:

template

函式型別 類模板名《虛擬型別引數》::成員函式名(函式形參表列)

關於類模板的幾點說明:

類模板的型別引數可以有乙個或多個,每個型別前面都必須加class,如

template

class someclass

;在定義物件時分別代入實際的型別名,如

someclassobj;

和使用類一樣,使用類模板時要注意其作用域,只能在其有效作用域內用它定義物件。

模板可以有層次,乙個類模板可以作為基類,派生出派生模板類。

C 模板小結

物件導向和泛型程式設計在c 的程式設計思想中佔據絕對的地位,而模板又是泛型程式設計的主要內容。函式模板 1.普通模板 以swap名稱為例 template or class void swap t0 a,t1 b 2.具體化 隱式例項化 顯式例項化 顯式具體化統稱為具體化。1 顯式具體化 可以寫成兩...

C 知識小結一

1.物件 看得見,摸得到的 特指的 eg 大街上的寶馬不是物件,因為不是特指 2.類 是具有同種屬性的物件 類是抽象的概念 eg 人類 電腦是類 兩者關係和區別 物件叫做類的例項 類不佔記憶體,物件占用記憶體 3.屬性 物件具有的各種特徵 4.屬性值 描述特徵的值 5.方法 行為 動作 執行的操作 ...

C語言知識小結

c語言小結 1.概述 源程式.c 目標程式.obj 可執行目標程式.exe 2.資料型別 運算子 表示式 基本型別 整型,字元型,浮點型 構造型別 陣列,結構,聯合,列舉 指標型別 空型別變數命名的規定 只能由字母,數字,下劃線組成,第乙個字元必須為字母或下劃線 整型資料 int 4個位元組 範圍 ...