友元

一、友元函數

函數在某一類中聲明爲friend,就說明了它不是該類的成員函數,而是獨立的一般的外界函數,但它可以訪問該類的所有對象的私有成員。

友元函數有類形參,以傳送私有參數。

class A

{ public:

  friend void func(A &);//成爲普通函數,但可訪問A類中的私有

};

void func(A &)

{//...

}

二、友元成員

另一個類的成員函數也可作爲某個類的友元,此時在聲明時要加上成員函數所在的類名。

好處:爲了2個類相互合作,協調工作。

class B;

class A

{ public:

  void toB(B *);//因爲在B類中有友元,可調用B的私有

  friend void B::toA(A *);

};

class B

{ public:

  void toA(A *);//因爲在A類中有友元,可調用A的私有

  friend void A::toB(B *);

};

簡單一點例子:

class B;

class A

{ public:

  void toB(B *);//因爲在B類中有友元,可調用B的私有成員進行運算等

};

class B

{ public:

  friend void A::toB(B *);

};

三、友元類

A類是B類的友元,A類中的所有函數都可訪問B類中的私有成員。

方法:在B類中加入friend class A;  可在公有段加也可在私有段加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章