C 之不得不了解的 類模板

2021-10-04 07:48:27 字數 2863 閱讀 9001

與函式模板基本一致

template

<

classt1,

class

t2>

class

person

;

#include

#include

using

namespace std;

template

<

class

t1=string,

classt2=

int>

//看這裡

class

person

;int

main()

請主要看下面的 test() 函式

1.傳入指定型別(常用)

template

<

classt1,

class

t2>

class

person

;void

test

(person

int>

&p)int

main()

2.引數模板化

template

<

classt1,

class

t2>

class

person

;template

<

classt1,

class

t2>

void

test

(person

&p)int

main()

3.整個類模板化

template

<

classt1,

class

t2>

class

person

;template

<

class

t>

void

test

(t &p)

intmain()

重點 class man :public person

..類模板成員函式類外實現

主要看man()函式

template

<

classt1,

class

t2>

class

person

;template

<

classt1,

class

t2>

void person

:: man ();

intmain()

因為類模板中成員函式的實現是在呼叫時,所以分檔案時會導致連線不到成員函式導致出錯

解決方法將類的宣告和實現同乙個檔案中去,並該字尾為.hpp(hpp為約定的名稱)

類模板與友元

1.類內實現友元(推薦)

跟平常一樣直接使用

template

<

classt1,

class

t2>

class

person

;private

: t1 name;

t2 age;

public

:person

(t1 name, t2 age)

};

2.類外實現

要宣告友元的函式放在類之前, 要宣告的全域性函式記得要加<>

template

<

classt1,

class

t2>

class

person

;template

<

classt1,

class

t2>

void

man(person p)

;template

<

classt1,

class

t2>

class

person};

intmain()

不得不了解的優質幣

林奇簡介 歡迎加入linkey lky 林奇幣目前在bcex的eth交易區進行交易。從私募價0.68元,現在已到達1.6多元左右。未來值得期待!基本資訊 1.linkey基於區塊鏈底層技術支援下的金融一站式服務平台!落地應用正在逐步推進中!2.linkey總量1.95億,前期流通量5000萬,剩下的...

Redis高階不得不了解的記憶體優化細節

宣告 本文內容來自 redis開發與運維 一書第八章。redis所有的資料都在記憶體中,而記憶體又是非常寶貴的資源。對於如何優化記憶體使用一直是redis使用者非常關注的問題。本文讓我們深入到redis細節中,學習記憶體優化的技巧。分為如下幾個部分 一.redisobject物件 二.縮減鍵值物件 ...

Redis高階不得不了解的記憶體優化細節

宣告 本文內容來自 redis開發與運維 一書第八章。redis所有的資料都在記憶體中,而記憶體又是非常寶貴的資源。對於如何優化記憶體使用一直是redis使用者非常關注的問題。本文讓我們深入到redis細節中,學習記憶體優化的技巧。分為如下幾個部分 一.redisobject物件 二.縮減鍵值物件 ...