三種友元:友元函式、友元類、友元成員函式。
宣告在類中加上friend,定義在類外,不可加friend、以及類名::。
#ifndef a_h#define a_h
#include
using std::cout;
using std::endl;
class b;//前向宣告
class a
;#endif
#ifndef b_h
#define b_h
//class a;//因先 #include "a.h" ,再包含 #include "b.h" ,故可以省略前向宣告(a已先定義)
class b
b():i(0){}
//友元宣告
friend void a::dis(const b &a);//其它類的成員函式作為友元函式
friend void test(const b& b);//普通的非成員函式作為友元函式
};#endif
#ifndef c_h
#define c_h
class c
friend class d;//友元類,只是乙個宣告,不作為成員一部分,故無需先建立d的定義
};#endif
#ifndef d_h
#define d_h
#include
using std::cout;
using std::endl;
//class c;//因先 #include "c.h" ,再包含 #include "d.h" ,故此語句可以省略
class d
void test(const b &b)//普通的非成員函式作為友元函式
int main()
關於模板類中友元函式的宣告與定義
ifndef widget h define widget h include using namespace std templateclass widget private t a include widget.h templateinline void accesswidget const w...
C 類 友元的三種宣告及注意事項
類允許其他類或者函式訪問它的非公有成員,但我們需要將訪問類非公有成員的其他類或者函式成為它的友元。一 友元函式 如果類想要把乙個函式作為他的友元,只需要增加一條以 friend 關鍵字開始的函式宣告語句即可。例如 class a void fri fun a aa class a 類 a 的成員函式...
JS的三種函式宣告
js有3種方法進行函式宣告。1 function語句型別函式宣告 function test1 函式的呼叫方式 test1 2 函式的直接量形式 var test2 function 函式的呼叫方式 test2 3 建構函式式 var test3 new function a b return a ...