C++ 无意义的错误:c2629 "Unexpected class"、c2065:'ceil'未声明的标识

C++ non-sensical errors: c2629 "Unexpected class", c2065: 'ceil' undeclared identifer

本文关键字:标识 未声明 c2065 ceil class 错误 无意义 c2629 Unexpected C++      更新时间:2023-10-16

我昨天有一个程序在运行,将一个函数从一个文件中的一个类移动到另一个类/文件,突然间我出现了一系列非敏感错误:

  • c2629:在几个头文件的开头出现了意外的类等等
  • c2065:"ceil"未声明的标识符
  • c2039:xxxx不是名称空间yyyy的成员(当然是,并且文件也包含在内)

我花了大约一天的时间试图弄清楚发生了什么,但我搞不清楚。有50多个文件,所以发布代码毫无意义,所以我想我的问题是,为了调试这样的错误,你会寻找什么样的东西?

我检查过:

  • 确保所有.h文件中都有适当的标头保护
  • 确保所有类的末尾都有分号
  • 仅将"using"指令放在.cpp文件中,或放在命名空间中
  • 正在查找不匹配的花括号

我无计可施。很抱歉缺少代码/信息。感谢您的帮助。

始终从第一个错误开始,并首先解决该错误。不要被大量的错误所困扰,因为编译器可能会在第一个严重错误(通常是结构/类后面缺少分号)时失去语法感。

复制函数定义时,是否将该函数定义中的类名替换为新类?即

void oldclass::func()
{
}

变为:

void newclass::func()
{
}

我知道这听起来微不足道。。。但你确实征求了建议:D

检查是否在某个源文件的开头错误插入了某些字符。这种情况在我身上已经发生过几次了,并且可能会在包含的头文件中出现奇怪的错误。