// enumType.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
//定义一个枚举类型,可以通过这个定义相应的枚举成员的标识符
//并用其中的一个为他们赋值
//定义在main函数体外属于全局变量
enum GameResult { WIN, LOSE, TIE, CANCEL };
int main() {
//enum GameResult { WIN, LOSE, TIE, CANCEL };
//int WIN;
//若将enum定义在主函数内,然后再定义WIN则会出现重定义错误
//主要是因为两者在同一命名空间中
GameResult result;
enum GameResult omit = CANCEL;
for (int count = WIN; count <= CANCEL; count++) {
result = GameResult(count);
if (result == omit)
cout << "The game was cancelled" << endl;
else {
cout << "The game was played ";
if (result == WIN)
cout << "and we won!";
if (result == LOSE)
cout << "and we lost.";
cout << endl;
}
}
//cout << &WIN << endl;
//编译错误,因为WIN是常量,不能对其取地址
cout << &omit << endl;
cout << &result << endl;
return 0;
}
#include<iostream>
using namespace std;
enum class Side{ Right, Left };
enum class Thing{ Wrong, Right }; //不冲突
int main()
{
Side s = Side::Right;//必须使用Side进行作用域的限制
Thing w = Thing::Wrong;
cout << (s == w) << endl; //编译错误,无法直接比较不同枚举类
return 0;
}
参考清华大学郑莉C++语言程序设计