我正在编写一个小型生成器,它从树对象结构中输出单个 cpp 文件中的 c++ 类(类的输出顺序由这棵树给出,因此它是固定的)。
为了简单起见,我希望有一种方法可以将它们全部保存在一个文件中。
问题是这些类有时会使用成员函数相互交互,并且存在前向声明不起作用的情况。
例子:
#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;
}
有什么建议/想法吗?谢谢。