Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将枚举数分配给具有相同值的枚举数的枚举类型_C++_Variable Assignment_Enumeration - Fatal编程技术网

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