【问题标题】:incomplete type not allowed error, How to fix ? [closed]不完整类型不允许错误,如何解决? [关闭]
【发布时间】:2013-09-16 04:34:00
【问题描述】:

我收到这个错误

“不允许不完整的类型”

出现此错误的行:

Vec3 MaxHeight;

【问题讨论】:

  • #包含定义Vec3的头文件。

标签: c++


【解决方案1】:

好吧,要修复它,您必须使 Vec3 成为一个完整的类型,即您必须定义它(而不是仅仅声明它)。

请注意,正如其他答案所暗示的那样,这可能与“包括头文件”无关。如果您忘记包含标头,编译器可能对Vec3 一无所知。错误消息会有所不同。在您的情况下,编译器知道Vec3,但它恰好不完整。

从您发布的内容中无法判断导致这种情况的原因(您基本上没有发布任何内容)。如果你确实包含了定义Vec3的头文件,那么问题可能是由循环头包含或类似的东西引起的。

【讨论】:

    【解决方案2】:

    你应该在询问之前先搜索,你可以找到错误here,我猜需要的cpp是here中的这个

    添加

    #include <vec3.h>
    

    到你的项目

    【讨论】:

    • Vec3 是一个很常见的类名,你怎么知道 OP 使用的库?
    • @DyP:那有什么关系?我认为很明显,其意图是包含vec3 的声明,无论它在哪里。鉴于 OP 提供的内容,最合乎逻辑的猜测是 vec3.h
    • 谢谢@EdS。正是我要说的
    • 主要是因为“你可以在这里找到 [...] 所需的 cpp”。 OP 可能不会使用这个库,下载它的人可能会感到困惑。如果您只是猜测头文件的名称恕我直言,您应该这样说。
    • @DyP 我已经相应地编辑了答案。
    【解决方案3】:

    几乎所有时候,我都是通过从库中包含一个声明 Vec3 的文件来解决这个问题的,但不包括包含 Vec3 本身的标头。

    发生这种情况是因为有时其他头文件“前向声明”Vec3,以便它们可以在其函数定义中使用,但它们不需要完整的定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多