OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

enumについて

  • すぐに回答を!
  • 質問No.181505
  • 閲覧数1255
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 35% (12/34)

enumでタグを指定しないで、宣言することは可能でしょうか??
もし可能だあれば、どのように宣言し、参照する際はどのようになるのでしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル13

ベストアンサー率 37% (570/1525)

列挙型宣言の書式は

enum タグ名 {
列挙定数宣言
} 列挙型変数名 ;

enum タグ名 {
列挙定数宣言
} ;

enum タグ名 列挙型変数名 ;

enum {
列挙定数宣言
} 列挙型変数名 ;

enum {
列挙定数宣言
} ;

よって、
enum RGB { red, green, blue } rgb ;
enum CMY { cyan, magenta, yellow } ;
enum CMY cmy ;
enum { black, white } monochrome ;
enum { gold, silver } ;
全て有効な宣言です。

参照時は
rgb = red ;
cmy = cyan ;
monochrome = black ;

Cの場合、列挙型は整数型と相互に代入可能なので
int col = gold ;

C++では列挙型はクラス型なので多少話がややこしくなり、適切なキャスト無しに他の型との相互代入はできません。
お礼コメント
dole

お礼率 35% (12/34)

ありがとうございます!!

>enum { gold, silver }

このケースがなぞだったのです。

質問の仕方がへたでスイマセンでした。
投稿日時 - 2001-12-10 18:47:54
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

例えば、C++ だと、こんな感じ。 #include <iostream.h> class A { public: enum { E1, E2 } x; }; int main() { A a; a.x = A::E2; cout << a.x << endl; return 0; } ...続きを読む
例えば、C++ だと、こんな感じ。

#include <iostream.h>

class A {
public:
enum { E1, E2 } x;
};

int main()
{
A a;
a.x = A::E2;
cout << a.x << endl;
return 0;
}


C なら、こんな感じ。

#include <stdio.h>

int main()
{
enum { E1, E2 } x;
x = E2;
printf("%d\n", x);
return 0;
}
  • 回答No.2
レベル8

ベストアンサー率 39% (23/58)

#1の方がばっちり例示されていますが。 できます。 宣言時に列挙型名を省略して変数名だけを書くと、無名の列挙型ができます。 その宣言でしか変数名を作らないときに使います。 enum { BLACK, RED, GREEN, BLUE, WHITE } colors; 宣言はこんな感じで、 colors = BLUE; みたいに使います。 一種の略記法らしいです。
#1の方がばっちり例示されていますが。

できます。
宣言時に列挙型名を省略して変数名だけを書くと、無名の列挙型ができます。
その宣言でしか変数名を作らないときに使います。

enum { BLACK, RED, GREEN, BLUE, WHITE } colors;
宣言はこんな感じで、

colors = BLUE;
みたいに使います。

一種の略記法らしいです。
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ