ツリー オブジェクト構造から単一の cpp ファイルに C++ クラスを出力する小さなジェネレーターを作成しています (クラスの出力の順序はこのツリーによって指定されるため、固定されています)。
シンプルにするために、すべてを1つのファイルに保持する方法があればいいと思います。
問題は、これらのクラスがメンバー関数を使用して相互に対話することがあり、前方宣言が機能しない場合があることです。
例:
#include <iostream>
using namespace std;
class B;
B* global_b=NULL;
class A;
A* global_a=NULL;
class A {
public:
A() {}
~A() {}
void accessB()
{
global_b->setValue(1);
}
int getValue()
{
return 2;
}
};
class B {
public:
B() : j(0) {}
~B(){}
void setValue(int i)
{
j = i + global_a->getValue();
}
int j;
};
int main()
{
global_b = new B();
global_a = new A();
global_a->accessB();
cout << "Hello world!" << endl;
return 0;
}
提案/アイデアはありますか?ありがとう。