C++ 将枚举数分配给具有相同值的枚举数的枚举类型
给定此枚举和分配:C++ 将枚举数分配给具有相同值的枚举数的枚举类型,c++,variable-assignment,enumeration,C++,Variable Assignment,Enumeration,给定此枚举和分配: enum Points {point2d = 2, point2w, point3d = 3, point3w}; Points pt3d = point3d; 在刚刚超过此赋值的断点处,调试器报告pt3d的值为point2w。为什么不指定point3d enum Points {point2d = 2, point2w, point3d = 3, point3w}; Points pt3d = point3d; 当您没有为点2w设置类似的值时,它将继续递增,因为点2d=
enum Points {point2d = 2, point2w, point3d = 3, point3w};
Points pt3d = point3d;
在刚刚超过此赋值的断点处,调试器报告pt3d的值为point2w。为什么不指定point3d
enum Points {point2d = 2, point2w, point3d = 3, point3w};
Points pt3d = point3d;
当您没有为点2w
设置类似的值时,它将继续递增,因为点2d=2
,点2w
将等于3,类似点3d
<代码>点3w将等于4,因为点3d
设置为3
你应该读书
希望这对你有帮助
当您没有为点2w
设置类似的值时,它将继续递增,因为点2d=2
,点2w
将等于3,类似点3d
<代码>点3w将等于4,因为点3d
设置为3
你应该读书
希望这对您有所帮助。一个
enum
只是一种为enum设置奇特的编译时类型安全名称的方法。发生的情况是,为每个枚举值分配了一个数字整数值:
enum Points
{
// Explicitly map point2d to value 2.
point2d = 2,
// Let point2w get an automatic mapping - will be previous + 1 = 3.
point2w,
// Explicitly map pint3d to value 3.
point3d = 3,
// Let point3w get an automatic mapping - will be previous + 1 = 4.
point3w
}
因此,对于运行时,语句
Points pt3d=point3d
与Points pt3d=3
相同。显示时,调试器只需获取映射到INTS 3的第一个枚举值,即point2w
一个enum
只是为枚举设置奇特的编译时类型安全名称的一种方法。发生的情况是,为每个枚举值分配了一个数字整数值:
enum Points
{
// Explicitly map point2d to value 2.
point2d = 2,
// Let point2w get an automatic mapping - will be previous + 1 = 3.
point2w,
// Explicitly map pint3d to value 3.
point3d = 3,
// Let point3w get an automatic mapping - will be previous + 1 = 4.
point3w
}
因此,对于运行时,语句
Points pt3d=point3d
与Points pt3d=3
相同。显示时,调试器只需获取映射到INTS 3的第一个枚举值,即point2w
,因为两者都有值3
?因为两者都有值3
?