複数のクラスの中身をのぞくことができる。 クラス宣言内で(アクセス指定子はどこでもいい)friend修飾を付ける。
フレンド関数
class Hoge {
...
friend void func( Hoge &obj );
...
}
フレンドクラス
class Friend; // 前方宣言が必要
class Hoge
{
...
friend class Friend;
...
private:
int himitsu;
};
class Friend
{
public:
int func(Hoge& obj)
};
int main()
{
...
Hoge hoge;
Friend friend;
friend.func( hoge );
...
}
内部クラスをフレンドクラスにする
フレンドクラスを継承したものはフレンドではない!!!