什么是“未聲明的標識符”錯誤,如何解決?什么是未聲明的標識符錯誤?什么是常見原因以及如何解決它們?示例錯誤文本:對于Visual Studio編譯器: error C2065: 'cout' : undeclared identifier對于GCC編譯器: 'cout' undeclared (first use in this function)
3 回答

長風秋雁
TA貢獻1757條經驗 獲得超7個贊
在對話中考慮類似的情況。想象一下,你的朋友對你說,“鮑勃正在過來吃飯,”你不知道鮑勃是誰。你會感到困惑,對吧?你的朋友應該說,“我有一個名叫鮑勃的同事。鮑勃正在過來吃飯?!?nbsp;現在鮑勃已經宣布,你知道你的朋友在談論誰。
當您嘗試使用某個標識符(函數,變量,類等的名稱)時,編譯器會發出“未聲明的標識符”錯誤,并且編譯器沒有看到它的聲明。也就是說,編譯器不知道你指的是什么,因為它之前沒有見過它。
如果在C或C ++中出現這樣的錯誤,則意味著您沒有告訴編譯器您正在嘗試使用的東西。聲明通常位于頭文件中,因此可能意味著您沒有包含相應的標頭。當然,可能你根本就沒有記住要申報該實體。
一些編譯器根據上下文給出更具體的錯誤。例如,嘗試編譯尚未使用clang聲明X x;
類型的位置X
將告訴您“未知類型名稱X
”。這更有用,因為你知道它試圖將其解釋X
為一種類型。但是,如果你有int x = y;
,在y
尚未聲明的地方,它將告訴你“使用未聲明的標識符y
”,因為對于確切y
代表什么可能有些含糊不清。

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
我在自定義類中遇到了同樣的問題,該類是在命名空間中定義的。我試圖使用沒有命名空間的類,導致編譯器錯誤“標識符”MyClass“未定義”。添加
using namespace <MyNamespace>
或者使用類似的
MyNamespace::MyClass myClass;
解決了這個問題。
- 3 回答
- 0 關注
- 1237 瀏覽
添加回答
舉報
0/150
提交
取消