Разница между enum и классом enum?
недавно я начал работать с управляемым кодом C++ / CLI, но я всегда определял перечисления так:
enum FV_MODE
{
IDLE,DRAG,ADD_HITBOX,ADD_HURTBOX
};
до сегодняшнего дня, когда я был поражен сообщением об ошибке:
cannot define an unmanaged enum 'FViewer::FV_MODE' inside managed 'FViewer'
1> use 'enum class'
как предложено в сообщении и на различных вопросах переполнения стека, изменив мой код на:
enum class FV_MODE
{
IDLE,DRAG,ADD_HITBOX,ADD_HURTBOX
};
быстро исправил проблему.
однако я все еще не знаю различий между 2 различными способами, которые я теперь знаю, чтобы определить перечисления. Кто-нибудь может помочь? прояснить для меня? А также что делает "enum class" более подходящим для управляемого кода?
заранее спасибо,
парень
1 ответов
разница между неуправляемыми перечислениями и управляемыми перечислениями, которая делает управляемые перечисления более подходящими для управляемого кода, заключается в том, что управляемые перечисления являются управляемым кодом, а неуправляемые перечисления-неуправляемым кодом. Управляемые перечисления могут передаваться метаданными управляемого кода. Неуправляемые перечисления не могут, то есть они могут не проявляться как часть управляемого класса.