フレンド関数

関数をフレンド関数にすると私的部(Privateメンバ)にアクセス出来るようになります。



■フレンド関数の書式
friend 何らかの関数

※friendの宣言はpublicとかprivateとは関係なくクラス宣言の中ではどこにでも記述することが可能。
※特に、取り扱うクラスが2つ以上にまたがっている場合に便利。

■フレンド関数の例
#include <iostream.h>
#include <string.h>
#include <stdio.h> //getchar関数

class Test2; //Test2クラスの宣言

class Test1
{
private:
 int buf;
public:
 Test1(int buf2){buf=buf2;}
 friend int Add(Test1 *a,Test2 *b);
};

class Test2
{
private:
 int buf;
public:
 Test2(int buf2){buf=buf2;}
 friend int Add(Test1 *a,Test2 *b);
};

int Add(Test1 *a,Test2 *b)
{
 return a->buf+b->buf ;
}

int main(void)
{
 Test1 A(10);
 Test2 B(5);
 //フレンド関数はTest1.AddまたはTest2.Addではなくそのままの関数呼び出しで呼ぶ。
 cout<<Add(&A,&B)<<endl;
 getchar();
 return 0;
}

※結果は「15」と表示される。





C++の基礎のページへ



ホーム PV ランキング