我在前进声明方面遇到了一些问题,好吧,我对一切感到困惑。 我有3个相互依赖的课程。例如:
我想知道如何以这种方式使用前向声明来避免循环依赖。
感谢您的帮助。
答案 0 :(得分:1)
#include <iostream>
using namespace std;
class B;
class C;
class A{
public:
static B instanceOfB;
static C instanceOfC;
static void foo(){
cout << "A static foo called"<< endl;
}
};
class C{
static A instanceOfA;
};
A C::instanceOfA = A();
class B{
A instanceOfA;
};
B A::instanceOfB = B();
int main(){
cout << "main run"<<endl;
A::foo();
return 0;
}
1,当课程相互依赖时,这是一个糟糕的设计。 2,这种依赖应该并不意味着你必须保持类的对象,相反,如果这种依赖是复杂的,你需要使用&#34;指针&#34;到对象而不是持有对象。 &#34;指向对象的指针&#34;意味着编译器不需要该类的完整原型。