私はこのような状況です (2 つの異なるヘッダー ファイルを持つ 2 つのクラス):
bh
#include "a.h"
class B {
friend void B* A::create(void);
private:
int x;
};
ああ
#include "b.h"
class A {
public:
void B* create(void);
...
};
基本的に、クラス A は「B」オブジェクトを作成します。作成関数 create() に、クラス B のプライベート メンバー 'x' を変更するアクセス権を付与したいと考えています。C# の 'internal' キーワードをより詳細なレベルでシミュレートしたいと考えています。
私が抱えている問題は、循環ヘッダー参照になってしまうことです。bh は ah の後に来たいが、ah は bh の後に来たい これを行う適切な方法は何ですか? void* ptr に頼る必要がありますか? 私は 1 種類のオブジェクトしか作成しないので、ファクトリ パターンは必要ないと思います。うまくいけば、単純なものが欠けています。