模板是c++支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別。
使用模板的目的就是能夠讓程式設計師編寫與型別無關的**。通常有兩種形式:函式模板和類模板
一、函式模板
函式模板 針對僅引數型別不同的函式,使用函式模板可以使函式的功能不受引數型別的限制
template中的t可以被任意的資料型別替代,template是關鍵字,尖括號內的是模板形參列表,模板形參列表不能為空
#include #includeusing
namespace
std;
template
t getmax(t a,t b)
intmain()
二、類模板
類模板 針對僅資料成員和成員函式型別不同的類。
#include #include#include
using
namespace
std;
template
class
pclass
; ~pclass()
;t getmax(t a, t b)
private:};
intmain()
也可以通過模板類來初始化類內的成員變數
#include #include#include
using
namespace
std;
template
class
pclass
; ~pclass()
;intgetmax()
private
:
inta;
intb;
};int
main()
三、可變引數模板
注意的是函式模板和類模板的使用不能混淆,
函式模板使用是直接傳變數值進去,傳變數型別會報錯
類模板使用是直接傳變數型別,初始化的時候傳值進去
templatet getmax(t a,t b)getmax(
1,2);//
正確getmax(int ,int);//
錯誤template
class
pclass
;pclass p1
;//正確pclass p2<2>;//
錯誤template
class
pclass
;pclass p1
<2>;//
正確pclass p2;//
錯誤
模板類的使用不能再main()函式裡面,模板類必須是全域性變數
C 模板template的使用
1.類模板,同意使用者為類定義一種模式,使得類中的某些資料成員,某些成員函式的引數,某些成員函式的返回值,能夠取隨意型別 包括系統提前定義的和使用者自己定義的 假設乙個類中資料成員的資料型別不能確定,或者是某個成員函式的引數或返回值的型別不能確定,就必須將此類宣告為模板,它的存在不是代表乙個詳細的,...
C 模板template的使用
模板是一種對型別進行引數化的工具 通常有兩種形式 函式模板和類模板 函式模板針對僅引數型別不同的函式 類模板針對僅資料成員和成員函式型別不同的類。使用模板的目的就是能夠讓程式設計師編寫與型別無關的 比如編寫了乙個交換兩個整型int 型別的swap函式,這個函式就只能實現int 型,對double,字...
C 模板 template 使用介紹
1.模板的概念。我們已經學過過載 overloading 對過載函式而言,c 的檢查機制能通過函式引數的不同及所屬類的不同。正確的呼叫過載函式。例如,為求兩個數的最大值,我們定義max 函式需要對不同的資料型別分別定義不同過載 overload 版本。函式1.int max int x,int y ...