为了账号安全,请及时绑定邮箱和手机立即绑定

请问 什么是“未声明的标识符”错误,如何解决?

请问 什么是“未声明的标识符”错误,如何解决?

C++
LEATH 2019-09-04 10:05:12
什么是“未声明的标识符”错误,如何解决?什么是未声明的标识符错误?什么是常见原因以及如何解决它们?示例错误文本:对于Visual Studio编译器: error C2065: 'cout' : undeclared identifier对于GCC编译器: 'cout' undeclared (first use in this function)
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

在对话中考虑类似的情况。想象一下,你的朋友对你说,“鲍勃正在过来吃饭,”你不知道鲍勃是谁。你会感到困惑,对吧?你的朋友应该说,“我有一个名叫鲍勃的同事。鲍勃正在过来吃饭。” 现在鲍勃已经宣布,你知道你的朋友在谈论谁。

当您尝试使用某个标识符(函数,变量,类等的名称)时,编译器会发出“未声明的标识符”错误,并且编译器没有看到它的声明。也就是说,编译器不知道你指的是什么,因为它之前没有见过它。

如果在C或C ++中出现这样的错误,则意味着您没有告诉编译器您正在尝试使用的东西。声明通常位于头文件中,因此可能意味着您没有包含相应的标头。当然,可能你根本就没有记住要申报该实体。

一些编译器根据上下文给出更具体的错误。例如,尝试编译尚未使用clang声明X x;类型的位置X将告诉您“未知类型名称X”。这更有用,因为你知道它试图将其解释X为一种类型。但是,如果你有int x = y;,在y尚未声明的地方,它将告诉你“使用未声明的标识符y”,因为对于确切y代表什么可能有些含糊不清。



查看完整回答
反对 回复 2019-09-10
?
临摹微笑

TA贡献1982条经验 获得超2个赞

我在自定义类中遇到了同样的问题,该类是在命名空间中定义的。我试图使用没有命名空间的类,导致编译器错误“标识符”MyClass“未定义”。添加

using namespace <MyNamespace>

或者使用类似的

MyNamespace::MyClass myClass;

解决了这个问题。



查看完整回答
反对 回复 2019-09-10
  • 3 回答
  • 0 关注
  • 1113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信