猿问

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

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

什么是未声明的标识符错误?什么是常见原因以及如何解决它们?

示例错误文本:

  • 对于Visual Studio编译器: error C2065: 'cout' : undeclared identifier

  • 对于GCC编译器: 'cout' undeclared (first use in this function)



侃侃无极
浏览 21800回答 3
3回答

ITMISS

在对话中考虑类似的情况。想象一下,你的朋友对你说,“鲍勃正在过来吃饭,”你不知道鲍勃是谁。你会感到困惑,对吧?你的朋友应该说,“我有一个名叫鲍勃的同事。鲍勃正在过来吃饭。” 现在鲍勃已经宣布,你知道你的朋友在谈论谁。当您尝试使用某个标识符(函数,变量,类等的名称)时,编译器会发出“未声明的标识符”错误,并且编译器没有看到它的声明。也就是说,编译器不知道你指的是什么,因为它之前没有见过它。如果在C或C ++中出现这样的错误,则意味着您没有告诉编译器您正在尝试使用的东西。声明通常位于头文件中,因此可能意味着您没有包含相应的标头。当然,可能你根本就没有记住要申报该实体。一些编译器根据上下文给出更具体的错误。例如,尝试编译尚未使用clang声明X x;类型的位置X将告诉您“未知类型名称X”。这更有用,因为你知道它试图将其解释X为一种类型。但是,如果你有int x = y;,在y尚未声明的地方,它将告诉你“使用未声明的标识符y”,因为对于确切y代表什么可能有些含糊不清。

Cats萌萌

我在自定义类中遇到了同样的问题,该类是在命名空间中定义的。我试图使用没有命名空间的类,导致编译器错误“标识符”MyClass“未定义”。添加using&nbsp;namespace&nbsp;<MyNamespace>或者使用类似的MyNamespace::MyClass&nbsp;myClass;解决了这个问题。
随时随地看视频慕课网APP
我要回答