C 模板template的使用

2022-05-03 11:45:17 字數 1504 閱讀 8388

模板是c++支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數、返回值取得任意型別

使用模板的目的就是能夠讓程式設計師編寫與型別無關的**。通常有兩種形式:函式模板和類模板

一、函式模板

函式模板 針對僅引數型別不同的函式,使用函式模板可以使函式的功能不受引數型別的限制

template中的t可以被任意的資料型別替代,template是關鍵字,尖括號內的是模板形參列表,模板形參列表不能為空

#include #include 

using

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 ...