Posted on 2011-03-02 15:55
点点滴滴 阅读(3264)
评论(0) 编辑 收藏 引用 所属分类:
02 编程语言
一個 class A 的定義中, 亦可宣告 class B 為其 friend, 如此一來, class B 中的 member function f(A &a) 若 有 引數 為 class A 的物件, 則 於函數 f() 的定義中就可以直接引用 class A 的 private elements。 這好像是 class A 宣告 class B 為其 好朋友, 因此, class B 就可以分享 class A 的資源。 由例 5 來看如何使用 friend class 的功能。
例 5 : friend class
#include <iostream.h>
class A
{
public:
A(int r=0){x=r;}
~A(){}
friend class B;
private:
int x;
};
class B
{
public:
B(int r=0){y=r;}
~B(){}
int g(A &a){ return a.x+y;}
private:
int y;
};
main()
{
A a(3);
B b(12);
cout<< "g(3) = "<< b.g(a)<< endl;
}
說明:
- 於 class A 中宣告 class B 為其 friend。
- class B 的 member function g 可以自由引用 class A 的 private elements, 如 a.x。
- 該程式的執行結果為 g(3) = 15