2013-06-17 19 views
6

I niedawno rozpoczął pracę C++/CLI kodu zarządzanego, ale zawsze zdefiniowane stałe teksty tak:Różnica między klasą enum a enum?

enum FV_MODE 
{ 
    IDLE,DRAG,ADD_HITBOX,ADD_HURTBOX 
}; 

Do dziś, kiedy został uderzony z komunikatem o błędzie:

cannot define an unmanaged enum 'FViewer::FV_MODE' inside managed 'FViewer' 
1>   use 'enum class' 

Jak sugerowano w komunikacie i na różnych Stos pytania przelewowy, zmiana mojego kodu:

enum class FV_MODE 
{ 
    IDLE,DRAG,ADD_HITBOX,ADD_HURTBOX 
}; 

szybko naprawił problem.

Jednak wciąż nie zdaję sobie sprawy z różnic między dwoma różnymi sposobami, które teraz wiem, aby zdefiniować wyliczenia. Czy ktokolwiek mógłby mi pomóc wyjaśnić? A także co sprawia, że ​​"klasa enum" jest bardziej odpowiednia dla zarządzanego kodu?

Dzięki z góry,

Guy

+2

@juanchopanza Nie! C++/CLI nie jest C++ 11. –

+0

@ R.MartinhoFernandes Tag C++ na te pytania zawsze mnie wyrzuca. – juanchopanza

Odpowiedz

4

Różnica między niezarządzani teksty stałe i udało teksty stałe sprawia, że ​​coraz więcej zarządzanych teksty stałe dla kodu zarządzanego że udało teksty stałe są zarządzane kod i niezarządzani teksty stałe są kod niekontrolowana. Wyliczenia zarządzane mogą być przekazywane za pomocą zarządzanych metadanych kodu. Niezarządzane wyliczenia nie mogą, co oznacza, że ​​nie mogą się manifestować jako część zarządzanej klasy.

+0

OK po edycji do tego, rozumiem je bardziej. –

+3

Idź do domu, twoje obwody są smażone. – Xeo

+0

@GuyJoelMcLean - czytasz to do końca? :) –