情况:我有一个 Particle 类和一个 Field 类。粒子具有与之相关的场,反之亦然,场通常具有粒子。
如果我在,我不能#include "particle.hpp"
在。当然,这很有道理。"field.hpp"
#include "field.hpp"
"particle.hpp"
我在这两个文件中都使用了前向声明,但是编译器现在无法编译并出现以下错误:
error: invalid use of incomplete type ‘class ElementaryParticle’
error: forward declaration of ‘class ElementaryParticle’
error: invalid use of incomplete type ‘class ElementaryField’
error: forward declaration of ‘class ElementaryField’
有没有办法解决这些问题?我明白为什么会发生错误。如何定义两个类而不将它们包含在彼此的文件中?这些问题的出现是因为场试图访问粒子的成员,而粒子包含场向量。
编辑:一种解决方法是将类合并到一个文件中的一个类中……但这很荒谬,并导致各种其他问题。
EDIT2:我知道头卫。