C 中友元的三種宣告和定義

2021-08-21 18:38:58 字數 917 閱讀 4871

三種友元:友元函式、友元類、友元成員函式。

宣告在類中加上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 ...