использование ENUM в Visual Studio C ++

0

Я попытался написать некоторый простой код в C++, но когда я его отлаживаю, объявленная переменная некоторого типа перечисления не получает назначенного значения. Код, который я имею в виду, выглядит следующим образом:

namespace GEORGE { 
    //...
    public enum FUNCTIONITEM { VARIABLE, FUNCTION, NUMBER };
    //...
}

то в другом файле у меня есть следующее:

//... 
using namespace GEORGE;

private System::Void AFunction(...)
{
    //...
    FUNCTIONITEM anItem;
    //...
    if (condition)
       anItem = VARIABLE;
    else
       amitem = NUMBER;
    //...
}

Когда я отлаживаю вышесказанное, когда условие истинно, оно идет и обрабатывает первый anItem = VARIABLE;

Но он не присваивает ему никакой ценности (Watch anItem в отладчике говорит: <undefined value> после обработки строки. Когда я объявляю anItem как int, он присваивает значение 0, как я ожидал. Думаю, хотя объявление aItem как FUNCTIONITEM должно быть прекрасным, поэтому я очень удивлен. Есть идеи?

  • 3
    Итак, в чем вопрос?
  • 0
    И что вы ожидаете от этого? Когда условие истинно, anItem должен равняться VARIABLE
Показать ещё 9 комментариев
Теги:
namespaces
visual-studio-2013
enums
c++-cli

1 ответ

-2

Вместо

if (condition)
   anItem = VARIABLE;
else
   amitem = NUMBER;

использование

if (condition)
   anItem = FUNCTIONITEM::VARIABLE;
else
   amitem = FUNCTIONITEM::NUMBER;
  • 0
    Привет Влад, спасибо за предложение. Я пробовал это тоже (добавить FUNCTIONITEM :: before VARIABLE или NUMBER) без дальнейшего успеха :(.
  • 3
    Это перечисление с незаданной областью, поэтому это просто предотвратит его компиляцию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню