我有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);
}

这样的相互依赖性很难处理,但有时是不可避免的。

如果AB彼此依赖,那么您将遇到系统设计问题,需要进一步解决。

关于c++ - 交叉依赖而没有预先声明所有使用的功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3939151/

10-16 07:23