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