2017-02-28 6 views
2

内のフレンド関数を定義し、なぜ、我々は同様にクラス定義 内のフレンド関数を定義することが許可されている: -C++ではクラス定義

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

、その後、私たちはただの通常の関数と同様に、この関数を呼び出すことができます。

fun(); 

誰かが(例を含む)について説明することができます:

  1. 私たちは、クラス定義内 フレンド関数を定義する必要がありますどのようなケースでは。

  2. は、クラス内の友人としての宣言機能だけでは達成できないこの種の定義について特別なものであり、次に機能を外部に定義すると です。

+1

フレンド関数は(クラスのメンバーではないが、これは特にクラスでの作業演算子のオーバーロードと便利です)プライベートクラスのメンバーにアクセスすることができ、この質問は重複して、Googleに次の時間を使います – user

答えて

3

すでにfriend機能が何であるかを知っていると仮定するとは、絶対にあなたの例に特別な意味はありません。何を持っていることは、その宣言と組み合わせる定義で、定期的なfriend機能です。

フレンドシップはである必要があることを思い出してください。は、「友人」という機能のクラス内にあります。それは、共通の友人関数を定義する方法、またはインサイド

  • ある - クラス

    • :その後、関数はは、次の2つの選択肢を持っているいくつかの場所、でを定義することができますクラス - あなたの例では、持っているものです。他対1つのアプローチで行くための

    基本的な考慮事項は、クラスの内部または外部メンバー関数を定義間で決定するために使用するルールと同じです。

  • 関連する問題