0

最も基本的なレベルでは、次のような別のクラスのプライベート データにアクセスするクラスのメソッドが必要です。

foo.h:

class foo{
    void method( void );
}

bar.h:

class bar{
   friend void foo::method( void );
}

ただし、メソッドはアクセスするオブジェクトを知る必要があるため、次のようになります。

foo.h:

class foo{
    void method(bar* point);
}

bar.h:

class bar{
    friend void foo::method(bar* point);
}

ただし、ご覧のとおり、これは循環的な依存関係をもたらします。bar はフレンドを宣言するために foo.h を必要とし、foo は bar ポインターを使用するため bar.h を必要とします。どのオブジェクトにアクセスするかをメソッドが知るには、他にどのような方法があるでしょうか?

4

1 に答える 1