當將乙個類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開始,它只能出現在類定義的內部,友...