c 模板學習11之類模板與友元

2021-10-19 07:08:27 字數 852 閱讀 4021

#include

#include

using

namespace std;

//提前讓編譯器知道person類存在

template

<

classt1,

class

t2>

class

person

;//2.全域性函式在類外實現

template

<

classt1,

class

t2>

void

printperson1

(person

& p)

//類模板與友元

template

<

classt1,

class

t2>

class

person

//全域性函式做友元在類外實現

//1.加空模板引數列表

//2.如果是全域性函式,是類外實現,需要要編譯器提前知道這個函式的存在

friend

void printperson1<

>

(person

& p)

;public

:person

(t1 name, t2 age)

private

: t1 name;

t2 age;};

//1.全域性函式在類內實現

void

test01()

//2.全域性函式在類外實現

void

test02()

intmain()

c 學習筆記之類模板中的友元宣告

類模板中出現3種友元宣告,每一種友元宣告了與乙個或者多個實體的友元關係 1 普通非模板類或函式的友元宣告,將友元關係授予明確指定的類或函式。2 類模板或函式模板的友元宣告,授予對友元所有例項的訪問權。3 只授予對類模板或函式模板的特定例項的訪問權的友元宣告。1 普通友元 非模板類或非模板函式可以是類...

c 學習筆記之類模板中的友元宣告

類模板中出現3種友元宣告,每一種友元宣告了與乙個或者多個實體的友元關係 1 普通非模板類或函式的友元宣告,將友元關係授予明確指定的類或函式。2 類模板或函式模板的友元宣告,授予對友元所有例項的訪問權。3 只授予對類模板或函式模板的特定例項的訪問權的友元宣告。1 普通友元 非模板類或非模板函式可以是類...

C 模板友元

c 中模板一直都是比較複雜和難以理解的部分,對於模板的友元,有時候理解起來就更加比較麻煩。本人在初期學習c 的時候,對於手工編寫模板的友元,也是比較棘手的。本文記錄模板友元的使用方式。這種友元符合這種場景 存在乙個模板類a。另外存在乙個模板類或者模板函式b。針對模板a的乙個例項化a,存在乙個模板b的...