这可能有点微不足道,但我对这样的问题感到困惑。
我想创建两个类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/