C++11での列挙型のアクセス方法

naohiro19
記事: 256
登録日時: 15年前
住所: 愛知県

C++11での列挙型のアクセス方法

投稿記事 by naohiro19 » 12年前

従来の列挙型は以下のように宣言していました。

CODE:

typedef enum {
	Menu,    //メニュー画面
	Game,    //ゲーム画面
	Config,  //設定画面
	None,    //無し
} eScene ;
C++11では enum class・enum struct の2種類が用意されています。C#でのenumに近い動作をします。

CODE:

enum class eScene : short {
	Menu,	//メニュー画面
	Game,	//ゲーム画面
	Config,	//設定画面
	None,	//無し
};
アクセス方法は eScene::Menu のようにアクセスします。この列挙型は shortで宣言されています。
enum classもしくは enum struct で宣言された列挙型は従来のような列挙型ではアクセスできません。アクセスの仕方は以下のとおりになります。

CODE:

eScene nextscene ; //列挙型の宣言
nextscene = eScene::Menu; //これはOK
nextscene = Menu; //これはエラー (識別子 "Menu" が定義されていません)

コメントはまだありません。