2016-09-25 21 views
1

對於過去幾個週末我一直在做一個遊戲。其中一些人可能在其他問題中看過代碼片段。我稱它爲Magick。如何將對象聲明爲我班的一部分?

在Magick,咒語是由類Spell它看起來像這樣控制:

class Spell { 
    public: 
     int damage; 
     magicTypes type; 
     int manaCost; 
    }; 

magicTypesenum class。然而,當我在我的代碼運行如下命令:

Spell fireball; 
fireball.damage = 50; 
fireball.type = fire; 
fireball.manaCost = 50; 

我得到這個錯誤:

magick1.cpp:117:1: error: ‘fireball’ does not name a type 

我獲得使用fireball法術的每個實例此錯誤。

這個類看起來和我其他類的設置完全一樣,他們工作,我無法弄清楚爲什麼這個不這樣做。

枚舉的定義是這樣的:

enum class magicTypes { 
    fire, 
    water, 
    earth, 
    air, 
    dark, 
    light 
}; 
+0

沒有足夠的信息。你忘了包括聲明嗎? –

+0

剛編輯我的答案包含枚舉定義 –

+4

我的水晶球認爲你在文件範圍寫了這個,在任何函數之外。 – molbdnilo

回答

1

,枚舉類,你應該指定類名:如果你想投的INT你可以做

fireball.type = magicTypes::fire; 

int i = static_cast<int>(magicTypes::fire);