Как я могу использовать перечисляемые типы C ++, такие как C #? - PullRequest
2 голосов
/ 17 сентября 2010

Как я могу использовать перечисляемые типы C ++, такие как C #?

рассмотреть следующее определение в c ++:

enum myEnum { A, B, C};
myEnum en = A;

Теперь я хочу записать строку # 2 в виде следующей строки, как C #:

myEnum en = myEnum.A;

??

Ответы [ 3 ]

8 голосов
/ 17 сентября 2010

Ну, разные правила в C ++. Самое близкое, что вы могли бы получить, это небольшое мерзость:

namespace myEnum {
    enum myEnum { A, B, C};
}

myEnum::myEnum en = myEnum::A;
7 голосов
/ 17 сентября 2010

C ++ 0x представляет enum class, который делает именно то, что вы хотите:

enum class myEnum { A, B, C };
myEnum en = myEnum::A;

В C я бы, вероятно, использовал старый добрый префикс:

enum myEnum { myEnum_A, myEnum_B, myEnum_C };
myEnum en = myEnum_A;
0 голосов
/ 17 сентября 2010

Какой именно здесь вопрос? Ваш пример C # будет работать так, как вы его написали (хотя он не соответствует соглашениям об именах .NET ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...