C 基礎 類模板詳解

2021-10-09 19:35:05 字數 1177 閱讀 1530

template

class 類模板名;

類模板中成員函式放在模板類外面定義語法:

template 《型別參數列》

返回值型別 類模板名《型別引數名列表》::成員函式名(參數列)

用類模板定義乙個物件寫法如下:

類模板名《真實引數型別表》 物件名(建構函式實際參數列);

類模板名《真實引數型別表》 物件名;

例項如下:

#include

#include

using

namespace std;

template

<

classt1,

class

t2>

class

student

;//初始化成員列表

bool

operator

<

(const student

& p)

const

;//宣告成員函式

template

<

classt1,

class

t2>

//類模板成員函式放在模板類外面定義

bool student

::operator

<

(const student

&p)const

intmain()

程式輸出結果:

alen 1

由以上程式我們可以看出,當例項化物件時,出入實參1和「alen」,這時函式模板的引數型別t1被int型別替代,t2被string型別替代。

類模板中的成員函式還可以是乙個函式模板,只有這個成員函式被呼叫的時候才會被例項化。

template

<

class

t>

classa;

};intmain()

函式輸出:

hahacome

C 類模板(模板類)詳解

人們需要編寫多個形式和功能都相似的函式,因此有了函式模板來減少重複勞動 人們也需要編寫多個形式和功能都相似的類,於是 c 引人了類模板的概念,編譯器從類模板可以自動生成多個類,避免了程式設計師的重複勞動。例如,在 c 運算子過載 一章中的 c 實現可變長度的動態陣列 一節中,我們實現了乙個可變長的整...

C 類模板(模板類)詳解

人們需要編寫多個形式和功能都相似的函式,因此有了函式模板來減少重複勞動 人們也需要編寫多個形式和功能都相似的類,於是 c 引人了類模板的概念,編譯器從類模板可以自動生成多個類,避免了程式設計師的重複勞動。例如,在 c 運算子過載 一章中的 c 實現可變長度的動態陣列 一節中,我們實現了乙個可變長的整...

C 類模板與模板類詳解

在c 的template中很多地方都用到了typename與class這兩個關鍵字,有時候這兩者可以替換,那麼這兩個關鍵字是否完全一樣呢?事實上class用於定義類,在模板引入c 後,最初定義模板的方法為 template,這裡class關鍵字表明t是乙個型別,後來為了避免class在這兩個地方的使...