類模板:就是設計類的一種框架,可以適用於不同的資料型別,是類的抽象。利用類模板可以針對不同的資料型別定義出具有共性的一組類。
定義:template《型別形參列表》 class 類模板名
;
其中型別引數列表與函式模板形式相同,如
定義類模板時應注意以下幾點:
①要是用關鍵字template
②型別形參列表可以包含抽象的形式型別,也可以是基本資料型別,但至少有乙個引數,多個引數之間有逗號「,」隔開
③類模板的成員函式和普通類的定義一樣,可在類中或類外定義。並且類模板的成員函式都是函式模板
template
《型別形參列表》
函式返回型別 類模板名 《型別名錶》 :: 函式名(形參表)
④類模板本身不是具體的類,所涉及的資料型別都是抽象型別,要想使用類模板,必須先用實際的型別來取代抽閒的型別,此過程將確定類模板的例項,即模板類
類模板名 《型別實參表列》 物件名;
通過乙個例項說明類模板的使用,適合任何型別的使用:
#include using namespace std;
template class safearray //定義類模板
;template safearray::safearray() //建構函式
輸出結果為:
0 0 10 0 0
0 0 0 3.1
由於類模板的這種型別無關的特點,類模板非常適合定義一些常用的資料結構,像堆疊,佇列,鍊錶等。
例項二,利用類模板實現堆疊
#include using namespace std;
template class stack
};template stack:: stack(int n)
template bool stack:: push(t &t)
{ if(top >= size) //判斷堆疊是否滿了
{cout<<"棧已經滿了!"{ if(top <= 0) //判斷堆疊是否為空
{cout<<"棧為空!"stk.push(a);
cout<
類模板與模板類
1.類模板與模板類的概念 什麼是類模板乙個類模板 也稱為類屬類或類生成類 允許使用者為類定義一種模式,使得類中的某些資料成員 默寫成員函式的引數 某些成員函式的返回值,能夠取任意型別 包括系統預定義的和使用者自定義的 如果乙個類中資料成員的資料型別不能確定,或者是某個成員函式的引數或返回值的型別不能...
C 類模板與模板類
6.3 類模板和模板類 所謂類模板,實際上是建立乙個通用類,其資料成員 成員函式的返回值型別和形參型別不具體指定,用乙個虛擬的型別來代表。使用類模板定義物件時,系統會實參的型別來取代類模板中虛擬型別從而實現了不同類的功能。定義乙個類模板與定義函式模板的格式類似,必須以關鍵字template開始,後面...
函式模板與類模板(模板類)
什麼是泛型程式設計?泛型程式設計 編寫與型別無關的通用 是 復用的一種手段。模板是泛型程式設計的基礎。模板分為函式模板和類模板 下面我們就來說說函式模板 函式模板與型別無關,在使用時被引數化,根據實參型別產生函式的型別版本 格式 template 返回值型別 函式名 引數列表 templatet1 ...