作者ric2k1 (Ric)
看板EE_DSnP
标题[讨论] int vs enum
时间Wed Dec 5 22:38:34 2007
虽然说 enum type 是表示 a set of constant integers,
enum 与 int 还是不能随便转换 ---
======
enum E { A, B };
int main()
{
E e;
e = 1;
int i = 2;
e = i;
int j = e;
}
======
cp44.cpp:6: error: invalid conversion from `int' to `E'
cp44.cpp:8: error: invalid conversion from `int' to `E'
所以说 conversion from enum to int 是可以的, e.g. int j = e;
但是 conversion from int to enum 就是 compiler error.
原因很简单,
因为 enum 只是定义 subset of int.
conversing int to enum may produce illegal enum value.
而反之 (enum to int) 就不会有问题.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.132.121