我有一個代碼塊從我的項目中用ncurses構建一個C++ roguelike。我試圖讓玩家可以握住兩把武器。我已經創建了一個weaponItem類和兩個對象,但是編譯器仍然會拋出'不會命名類型'的錯誤。編譯器給出的錯誤:「不命名一個類型」立即宣佈後
代碼:
weaponItem weapon1;
weaponItem weapon2;
weapon1.setType(DMW_DAGGER);
weapon2.setType(DMW_SBOW);
weapon1.setPrefix(DMWP_AVERAGE);
weapon2.setPrefix(DMWP_RUSTY);
編譯器錯誤:
In file included from main.cpp:2:0:
hero.h:17:2: error: ‘weapon1’ does not name a type
weapon1.setType(DMW_DAGGER);
^
hero.h:18:2: error: ‘weapon2’ does not name a type
weapon2.setType(DMW_SBOW);
^
hero.h:20:2: error: ‘weapon1’ does not name a type
weapon1.setPrefix(DMWP_AVERAGE);
^
hero.h:21:2: error: ‘weapon2’ does not name a type
weapon2.setPrefix(DMWP_RUSTY);
^
有什麼問題我的類或對象的聲明?
您不能在名稱空間範圍內執行代碼。 –
weaponItem類型是在另一個頭文件中聲明的,這個頭文件包含在我展示的文件的頂部。 –
你不能在頭文件中放置可執行代碼(比如'weapon1.setType(DMW_DAGGER);')。 C++中的可執行代碼必須在函數中。 –