我有A类(在A.h中),这取决于(B.h)中的B类,反之亦然。正向声明使用的函数是可行的,但这意味着我将来必须在所有向前声明这些函数的地方进行更新,例如,如果我删除或更改了这些函数中的参数,则必须对它们全部进行更新以反射(reflect)变化。我觉得这不是好习惯。有没有解决的办法?
谢谢
最佳答案
如果只需要在声明级别使用指向类的指针或引用,则可以这样进行:
啊
class B; // forward class declaration
class A {
A(B &);
};
。
class A;
class B {
B(A &);
};
丙型肝炎
#include "B.h"
#include "A.h" // now we get the full declaration of A
B::B(A &a) {
a.foo(5);
}
这样的相互依赖性很难处理,但有时是不可避免的。
如果
A
和B
彼此依赖,那么您将遇到系统设计问题,需要进一步解决。关于c++ - 交叉依赖而没有预先声明所有使用的功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3939151/