C“一个声明中的多种类型”错误

新手上路,请多包涵

为什么我在编译 C++ 程序时收到 "multiple types in one declaration" 错误?

原文由 Mark Copeland 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 937
1 个回答

C 或 C++ 错误:“多个类型在一个声明中”:对您在 _类_、 枚举结构 定义末尾忘记分号 ( ; ) 的情况的进一步解释

假设您有以下代码:

 enum class ErrorType {
    MY_ERROR_1 = 0,
    MY_ERROR_2,
    MY_ERROR_3,
    /// Not a valid value; this is the number of enums
    _COUNT,
}  // <====== MISSING SEMICOLON (;)!

class MyClass {
public:
    // some stuff
private:
    // some stuff
};

由于我忘记了 enum class 定义末尾的分号( ; ),所以在花括号之后, 看起来 我正在定义整个 class MyClass 内部 enum class ErrorType ,所以我得到了错误!:

 ../my_header.h:43:1: error: multiple types in one declaration
   43 | };
      | ^

…在我的例子中,第 43 行位于 class MyClass 定义的末尾。

解决方案:在 enum 定义的末尾添加缺少的分号 ( ; ), 如@eguaio here@MSalters here 所述。

原文由 Gabriel Staples 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏