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

2021-09-02 01:20:37 字數 683 閱讀 3206

類模板中出現3種友元宣告,每一種友元宣告了與乙個或者多個實體的友元關係

(1)普通非模板類或函式的友元宣告,將友元關係授予明確指定的類或函式。

(2)類模板或函式模板的友元宣告,授予對友元所有例項的訪問權。

(3)只授予對類模板或函式模板的特定例項的訪問權的友元宣告。

1 普通友元

非模板類或非模板函式可以是類模板的友元。

#include using namespace std;

template class bar

};class foobar

};template class foobar

一般模板友元關係:foobar的任意例項都可以訪問bar的任意例項的私有成員。fun函式相同。

3 特定的模版友元

除了將乙個模版的例項設為友元,類也可以只授予對特定例項的訪問權。

#include using namespace std;

//模版宣告

template class bar;

template class foobar;

template void fun(const bar&);

template class bar

};template class foobar

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

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

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

include include using namespace std 提前讓編譯器知道person類存在 template classt1,class t2 class person 2.全域性函式在類外實現 template classt1,class t2 void printperson1 ...

類模板中的友元宣告

有三種友元宣告可以出現在類模板中 1 非模板友元類或友元函式。在下面的例子中,函式foo 成員函式bar 以及foobar類都是類模板queueitem的所有例項的友元。class foo templateclass queueitem 上面的例子中,注意第三條,在queueitem類把foo類的乙...