c++ - 如何声明相互引用的类?

标签 c++ class reference include

我已经有很长时间没有使用 C++ 了,我在类相互引用方面遇到了一些麻烦。

现在我有这样的东西:

啊啊

class a
{
  public:
    a();
    bool skeletonfunc(b temp);
};

b.h

class b
{
  public:
    b();
    bool skeletonfunc(a temp);
};

由于每个人都需要对另一个人的引用,我发现我不能在顶部对彼此进行#include,否则我最终会陷入一个奇怪的包含循环。

那么我怎样才能使 a 可以使用 b,反之亦然,而不会产生循环 #include 问题?

谢谢!

最佳答案

你必须使用 Forward Declaration :

啊啊

class b;
class a
{
  public:
    a();
    bool skeletonfunc(b temp);
}

但是,在许多情况下,这可能会迫使您在方法调用或成员变量中使用引用或指针,因为您不能在两个类头中都包含完整的类型。如果必须知道类型的大小,则需要使用引用或指针。但是,如果只需要方法声明,则可以使用该类型。

关于c++ - 如何声明相互引用的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2503533/

相关文章:

c++ - "Inherit"无法访问基类成员变量的 move 操作

javascript - 不能声明或修改变量

c# - 如何下载 Microsoft.TeamFoundation.Framework.Common.dll

delphi - 一个简单的delphi表单应用程序是否需要任何库或依赖项来部署?

C++ WinInet InternetCloseHandle 崩溃

c++ - glDrawArrays(...) 处的 OpenGL 访问冲突

c++ - 继承覆盖

c++ - 没有成员函数的类实例的默认返回

java - 奇怪的类数组问题 - 无法在 jsp 中显示

python-3.x - Intellij IDEA 导入类时出现问题, "cannot find reference"但代码仍然有效 - Python