Я попытался написать некоторый простой код в 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 должно быть прекрасным, поэтому я очень удивлен. Есть идеи?
Вместо
if (condition)
anItem = VARIABLE;
else
amitem = NUMBER;
использование
if (condition)
anItem = FUNCTIONITEM::VARIABLE;
else
amitem = FUNCTIONITEM::NUMBER;
anItem
должен равнятьсяVARIABLE