这段代码怎么错了。如何修改呢
```c++
#include
enum class EquireLv :int
{
normal, /*自己设置等级*/ armyA = normal,
high, /*自己设置等级*/ armyB = high,
rare, /*自己设置等级*/ armyC = rare,
epic, /*自己设置等级*/ armyD = epic,
legend = 100,/*自己设置等级*/ armyE = legend
}
EquireLv weaponLv1{ EquireLv::normal };
EquireLv weaponLv2{ EquireLv::high };
void main()
{
}
```
知道答案了,不必回答了
参考GPT和自己的思路:
这段代码缺少了一个分号,应该在最后一行添加一个分号,即:
EquireLv weaponLv1{ EquireLv::normal };
EquireLv weaponLv2{ EquireLv::high };
void main()
{
};
另外,如果这段代码要被运行,还需要在最上方添加一个头文件:
#include<iostream>
不过,这段代码并没有实质性的错误,修改主要是针对语法的规范和完整性。
enum{
...
}; 这里少了分号
参考GPT和自己的思路:
这段代码存在两个问题:
修改后的代码如下:
#include<iostream>
enum class EquireLv :int
{
normal, /*自己设置等级*/ armyA = normal,
high, /*自己设置等级*/ armyB = high,
rare, /*自己设置等级*/ armyC = rare,
epic, /*自己设置等级*/ armyD = epic,
legend = 100,/*自己设置等级*/ armyE = legend
}; // 枚举类型成员声明后加分号
EquireLv weaponLv1 { EquireLv::normal };
EquireLv weaponLv2 { EquireLv::high };
void main()
{
// 代码主体
}
这段代码有几个问题:
1.枚举成员的值应该是整数而不是枚举类对象。
2.main 函数的返回值类型应该是 int 而不是 void。
下面是修改后的代码:
#include <iostream>
enum class EquireLv : int
{
normal, /*自己设置等级*/ armyA = static_cast<int>(normal),
high, /*自己设置等级*/ armyB = static_cast<int>(high),
rare, /*自己设置等级*/ armyC = static_cast<int>(rare),
epic, /*自己设置等级*/ armyD = static_cast<int>(epic),
legend = 100,/*自己设置等级*/ armyE = legend
};
EquireLv weaponLv1{ EquireLv::normal };
EquireLv weaponLv2{ EquireLv::high };
int main()
{
return 0;
}