【问题标题】:Undeclared identifier custom class未声明的标识符自定义类
【发布时间】:2023-03-21 18:12:01
【问题描述】:

'Plansza' : undeclared identifier 我不知道为什么我会收到这个错误。我有 2 个名为“Plansza”和“GameData”的类,我包含了两个标题(在 Plansza.h 中包含“GameData.h”并且它有效,但是当我在 GameData.h 中包含“Plansza.h”时它看不到Plansza 类:S

【问题讨论】:

    标签: c++ visual-studio-2010 linker compiler-errors


    【解决方案1】:

    当您在B.h 中包含A.h 并且反过来也包含A.h 时,您设置了循环依赖。如果你有包含守卫,其中一个会丢失,并且会发生此类错误。

    你要做的就是尽量将.h文件包含在.cpp文件中,如果不行,就将2路依赖减少为1路依赖。

    尽量在.h 文件中使用前向声明,只要您只使用指向类的指针,这就足够了。

    class Plansza;
    

    而不是

    #include "Plansza.h"
    

    编辑:感谢 user1701595 提供非常好的参考 - Organizing Code Files in C and C++

    【讨论】:

    【解决方案2】:

    如果其他人发现这个问题,并且 没有 有循环包含,我设法通过将枚举案例命名为与我的类名完全相同的东西来得到这个完全相同的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多