2017-02-28 62 views
2

在C++中,我們被允許在類定義 喜歡裏面的朋友功能: -爲什麼定義類定義友元函數

class A { 
public: 
    A(int a): mem(a){} 
    ~A() {} 
    friend void fun() {} 
private: 
    int mem; 
}; 
void fun(); 

,然後我們可以調用這個函數,就像任何普通的函數。

fun(); 

有人能解釋有關(舉例):

  1. 在什麼情況下,我們需要定義類 定義中友元函數。

  2. 什麼是這種定義不可能是 只是聲明函數作爲朋友在課堂上,然後 外界定義的功能。

+1

Friend函數可以訪問私有類成員(這對於運算符重載與類一起工作而不是類成員尤其有用),這個問題是重複的,下次使用google – user

回答

3

假設你已經知道什麼是friend功能,也絕對沒有任何特殊含義的例子:你有什麼是有規律的friend功能,其聲明定義結合。

回想一下友誼需要宣稱裏面的那個「好友」一個函數。在此之後,該功能可以在一些地方定義,對此你有兩個選擇:

  • 外 - 這是一個定義友元函數的常見方式,或
  • 內類 - 這就是你的例子。

用一種方法對其他準備基本考慮是一樣的,你用定義內部或外部類之間一個成員函數來決定的規則。

相關問題