这段代码怎么修改呢?为什么错了

这段代码怎么错了。如何修改呢


```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和自己的思路:

这段代码存在两个问题:

  1. 枚举类型EquireLv中的成员声明后没有加分号;
  2. 在定义两个枚举类型变量weaponLv1和weaponLv2时,变量名与类型之间应该有一个空格。

修改后的代码如下:

#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;
}