C++ 如何将两个类链接在一起

标签 c++ oop pointers

这可能有点微不足道,但我对这样的问题感到困惑。

我想创建两个类Class1、Class2。两个类都应该包含一个字段,其中包含指向另一个类的实例的指针。所以它们应该是交叉链接的。

如果我这样做,那么我会从编译器中收到一条错误消息: - ISO C++ 禁止声明没有类型的“Class1” - 预期的 ';'在 * 标记之前

请帮忙:)

文件:class1.h

#ifndef CLASS1_H
#define CLASS1_H

#include "class2.h"

class Class1 {
public:
    Class1();
private:
    Class2* link;
}

#endif

文件:class2.h

#ifndef CLASS2_H
#define CLASS2_H

#include "class1.h"

class Class2 {
public:
    Class2();
private:
    Class1* link;
}

#endif

最佳答案

在使用之前添加类声明(而不是定义)。例如,您可以:

#ifndef CLASS1_H
#define CLASS1_H

class Class2;

class Class1
{
public:
    Class1();
private:
    Class2* link;
}

#endif

并对 Class2.h 执行相同的操作。

关于C++ 如何将两个类链接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5493745/

相关文章:

C++ 读取内存地址/指针和偏移量

c++ - 如何将字符串传递给指向对象类数组的指针?

c++ - 如何使用 MySQL Connector C++ 与数据库建立连接?

访问说明符的 C++ 实现

.net - 为什么循环引用被认为是有害的?

java - 在主方法中创建同一类的实例是否会创建两个实例?

c++ - 在测试中检查对象的类型是公认的做法吗?

c++ - 使用包含托管类的/CLR 标志构建的 native dll

c++ - 下标 ("[ ] ")运算符给出奇怪的错误

c - 错误 : too few arguments to function ‘ptr’ , 需要从函数中执行 eval_time