我曾尝试用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 of anItem说:<undefined value>
,在处理完行之后。当我将anItem声明为int时,它会赋值0,因为我虽然我认为将一个项目称为FUNCTIONITEM应该没问题,所以我很惊讶。有什么想法吗?
答案 0 :(得分:-2)
而不是
if (condition)
anItem = VARIABLE;
else
amitem = NUMBER;
使用
if (condition)
anItem = FUNCTIONITEM::VARIABLE;
else
amitem = FUNCTIONITEM::NUMBER;