友元宣告和友元定義的相互依賴

2021-09-06 17:29:41 字數 544 閱讀 7614

當將乙個類a的成員函式a::f設定成類b的友元時,需要預先定義類a,否則不能將a::f指定為友元。而在定義b之後,才能定義a::f,因為a::f被設為 友元正是為了訪問類b的成員函式。所以,可以按照如下的順序:

下面是乙個例子:

#include #include

using

namespace

std;

class screen;//

前向宣告

class

window_mgr

;class

screen;

void

print()

private:

intx;

inty;};

void window_mgr::reloacate(screen&s)

int main(int argc, char*argv)

執行結果如下:

C 友元宣告與定義依賴關係

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 故可...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...