什么是“未声明的标识符”错误,如何解决?什么是未声明的标识符错误?什么是常见原因以及如何解决它们?示例错误文本:对于Visual Studio编译器: error C2065: 'cout' : undeclared identifier对于GCC编译器: 'cout' undeclared (first use in this function)
3 回答
ITMISS
TA贡献1871条经验 获得超8个赞
在对话中考虑类似的情况。想象一下,你的朋友对你说,“鲍勃正在过来吃饭,”你不知道鲍勃是谁。你会感到困惑,对吧?你的朋友应该说,“我有一个名叫鲍勃的同事。鲍勃正在过来吃饭。” 现在鲍勃已经宣布,你知道你的朋友在谈论谁。
当您尝试使用某个标识符(函数,变量,类等的名称)时,编译器会发出“未声明的标识符”错误,并且编译器没有看到它的声明。也就是说,编译器不知道你指的是什么,因为它之前没有见过它。
如果在C或C ++中出现这样的错误,则意味着您没有告诉编译器您正在尝试使用的东西。声明通常位于头文件中,因此可能意味着您没有包含相应的标头。当然,可能你根本就没有记住要申报该实体。
一些编译器根据上下文给出更具体的错误。例如,尝试编译尚未使用clang声明X x;
类型的位置X
将告诉您“未知类型名称X
”。这更有用,因为你知道它试图将其解释X
为一种类型。但是,如果你有int x = y;
,在y
尚未声明的地方,它将告诉你“使用未声明的标识符y
”,因为对于确切y
代表什么可能有些含糊不清。
Cats萌萌
TA贡献1805条经验 获得超9个赞
我在自定义类中遇到了同样的问题,该类是在命名空间中定义的。我试图使用没有命名空间的类,导致编译器错误“标识符”MyClass“未定义”。添加
using namespace <MyNamespace>
或者使用类似的
MyNamespace::MyClass myClass;
解决了这个问题。
- 3 回答
- 0 关注
- 21799 浏览
添加回答
举报
0/150
提交
取消