问题描述
我正在关注有关C ++的教程,我们已经涉及了枚举类型的主题。 Here is a link to the exact lesson in the website if anyone is curious
他们声明,如果您指定所使用的int类型,则可以转发声明一个枚举,因此我尝试了如下操作:
enum Item : short;
int main()
{
Item item { ITEM_SWORD };
std::cout << "Item: " << item << '\n';
return 0;
}
enum Item : short
{
ITEM_SWORD,ITEM_SHEILD,ITEM_TORCH,};
但这产生了一个错误:在此范围内未声明'ITEM_SWORD'。我阅读了针对同一问题的其他问题的一些回复,并且该教程的一位管理员的一个回复读到了这样的内容:“在定义枚举之前,您不能使用枚举器。向前声明仅允许您声明枚举变量(例如,作为函数的前向声明中的参数)。”有人可以解释清楚吗?我更改了代码,是因为我解释了他对以下内容的反应方式:
enum Item : short;
void printItem(Item item);
int main()
{
Item item { ITEM_SWORD };
std::cout << "Item: " << printItem(item) << '\n';
return 0;
}
enum Item : short
{
ITEM_SWORD,};
void printItem(Item item)
{
if (item == ITEM_SWORD)
{
std::cout << "Sword\n";
}
if (item == ITEM_SHEILD)
{
std::cout << "Sheild\n";
}
if (item == ITEM_TORCH)
{
std::cout << "Torch\n";
}
else
{
std::cout << "???\n";
}
}
但这只会导致大量其他根本无法清除的错误和警告。有人可以解释一下教程管理员在回应中的意思吗?一个具体的例子将不胜感激,甚至可能是几个。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)