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在這兩個地方的使...