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

C++独特のenum ?

  • 暇なときにでも
  • 質問No.130005
  • 閲覧数329
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 87% (76/87)

以下「プログラミング言語C++第3版 日本語版」
112ページから抜粋したものです。

=========================================================
enum flag {x=1, y=2, z=4, e=8}; // 範囲 0~15


flag f1 = 5;     // 型エラー:5はflag型の値ではない。

flag f2 = flag(5);  // ok:flag(5)はflag型のデータであり、
            // flagの範囲に収まっている。

=========================================================

すごい初歩的そうな質問で申し訳ないのですが、
flag(5)とは何を意味しているのでしょうか?

またこのような使い方はC++独特のものなのかCでも
当たり前のように使っているものなのか、できたら
教えてください。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル5

ベストアンサー率 50% (2/4)

これは、C++特有のもので、Cで言うところの (flag)5 にあたります。つまり、キャストなわけですが、コンストラクタ的構文ですね。
ちなみに、double x = double(10) のような書き方もできます(Cだと、double x = (double)10 となりますね)。C++でも C形式のキャストはできますし、ポインタなど、あえてキャストを使用する場合は、dynamic_cast や static_castなどを使用しますので、この形式のキャストはこの例のように、素直なキャストにしか使用しません。
お礼コメント
aaaaa

お礼率 87% (76/87)

たいへんありがとうございます!!

キャストだって全く気付けませんでした。
投稿日時 - 2001-09-05 19:42:24
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


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

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ