объявление базового типа идентификатора перечисления

Я объявил перечисление следующим образом:

enum fileType {typeA, typeB};

Это вызывает ошибку, когда я пытаюсь добавить тип directoryType к строке.
Я считаю, что мне нужно включить базовый тип идентификаторов перечисления в объявление enum. Или что-то вроде

enum fileType : string {typeA, typeB};

как описано в http://msdn.microsoft.com/en-us/library/2dzy4k6e(v=vs.80).aspx

однако это не компилируется для меня. Каков правильный синтаксис для объявления базового типа идентификаторов перечислений?

-1

Решение

У вас могут быть только целочисленные типы в качестве базового типа для enum. Это означает подписанные и неподписанные типы, такие как char short int а также long,

Имена перечислений нигде не доступны во время выполнения. Если вы хотите отобразить их (или добавить в строку), вам нужно написать специальный код.

 enum fileType {typeA, typeB};
const char *fileType_str[]={ "typeA","typeB"};

fileType x = typeA;
// display x
std::cout << "x is " << fileType_str[x] << std::endl;

// append x to string
std::string y = "directoryType type to a ";
y += fileType_str[x];
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]