目錄
- enum
- 列舉的問題
- 新特性
- 類中常量
enum
列舉的問題
- 作用域不受限,會容易引起命名衝突。例如下面無法編譯透過的:
enum Color
{
RED,
BLUE //重複
};
enum Feeling
{
EXCITED,
BLUE //重複
};
int main()
{
Color a = BLUE; // error
Feeling b = EXCITED;
std::cout << a << ":" << b << std::endl;
return 0;
}
新特性
C++11 標準中引入了“列舉類”(enum class),可以較好地解決上述問題。
enum class Color2
{
RED=2,
YELLOW,
BLUE
};
Color2 c2 = Color2::RED;
類中常量
class Person{
public:
typedef enum {
BOY = 0,
GIRL
}SexType;
};
列舉常量的缺點是:它的隱含資料型別是整數,其最大值有限,且不能表示浮點。