声明枚举看看下面的两个例子如下:在上课开始VS结束
struct Coord
{
private:
enum class Origin
{
Top_Left = 0,
Center
};
public:
Coord(Origin origin = Origin::Top_Left)
{}
};
int main()
{
}
上面运行这个,我没有得到任何错误。另一方面,当我运行这个时,我得到以下错误。
struct Coord
{
public:
Coord(Origin origin = Origin::Top_Left)
{}
private:
enum class Origin
{
Top_Left = 0,
Center
};
};
int main()
{
}
7:16: error: expected ')' before 'origin'
此外,在Visual Studio 2015年,我得到了在构造函数中未发现标识Origin
错误。
这是为什么?
错误的位置:Live Example
@crashmstr ^相似 –
但根据Bjarne Stoustrup的书第9.4.3节,PPP第4版:编译器不关心类函数和数据成员的顺序;它以您关心的任何顺序呈现声明。一个枚举类是否违反了这个? –
@LogicStuff你可以在C++ 11及更高版本中实际转发declare *强类型枚举* s(“enum class”)。 –