所以我有2类让我们称之为A类和B,其与这些类的内部对彼此作为一个函数的参数的参考。当我尝试着声明它是这样的:正向声明类,类重定义
// A.h (Header guarded)
namespace ns {
class B { // Attempt to forward declare B
public:
int getRand();
};
class A {
public:
float a, b;
void aFunc(B &b);
};
}
// B.h (Header guarded)
namespace ns {
class A { // Attempt to forward declare A
public:
float a, b;
};
class B {
public:
void bFunc(A &a);
int getRand();
};
}
的事情是,当我这样做,我得到'class' type redefinition
错误。我一直在寻找解决方案,但仍未找到解决方案。我做对了吗?我想我不是,你能告诉我我在哪里做错了吗?
不是一个向前声明你到了那里那个! 'B类;'会。 – jrok
@jrok嗯,但如果我需要从A访问B的变量呢?没有它会产生一个错误'不完整的类型是不允许的' – Greffin28
这取决于类。告诉我们更多关于他们以及你想要完成什么。 – jrok