C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++の列挙型(enum)定数とは?意味と基本的な使い方をわかりやすく解説

C++の列挙型定数とは

列挙型(enumerated type)とは、任意の型名と、その型の値として使用できる0個以上の識別子の集合を宣言するための仕組みです。列挙型で宣言された各識別子は「列挙子」と呼ばれ、それぞれがその列挙型に属する定数として扱われます。このような定数のことを列挙型定数(enumerated constants)と呼びます。

列挙型は、取りうる値の種類があらかじめ決まっている変数を扱う際に特に便利です。例えば、性別を表す変数を考えてみましょう。男性・女性・その他のように、値の種類が限られている場合、enumを使って以下のように定義できます。

列挙型の定義例

#include<iostream>
using namespace std;
enum Gender {MALE, FEMALE, OTHERS};
int main() {
    Gender gen = FEMALE;
    return 0;
}

列挙子のデフォルト値について

特別な指定がない場合、最初の識別子には「0」、2番目の識別子には「1」、3番目には「2」というように、先頭から順に整数値が自動的に割り当てられます。上記の例では、MALE = 0FEMALE = 1OTHERS = 2となります。

ただし、実際のプログラミングでは、これらの内部的な数値自体はあまり重要ではありません。enumを使う本来の目的は、値に象徴的な意味(シンボル)を持たせることにあります。プログラム内でenumを比較する際も、生の数値ではなく、FEMALEOTHERSといった名前そのものを使って処理を行います。

列挙型を使うメリット

  • 可読性の向上: 数値の代わりに意味のある名前を使えるため、コードの意図が明確になります。
  • 保守性の向上: 値の種類を一箇所で管理できるため、変更や追加が容易になります。
  • 誤り防止: 定義されていない不正な値の代入を防ぎやすくなります。

このように、C++の列挙型は、限定された選択肢を表現するための安全かつ読みやすい手段として、幅広い場面で活用されています。

  1. C++の型指定子とは?基本の使い方を初心者向けに解説

    C++の型指定子(Type Specifier)とは? C++のような静的型付け言語では、変数を最初に宣言する際に、その変数がどの種類のデータを保持するのかを必ず指定しなければなりません。 int number = 42; この例における「int」が型指定子です。これは「number」という変数には整数値しか格納できないことを示しています。 動的型付け言語との違い 一方、RubyやJavaScriptなどの動的型付け言語では、型を事前に宣言する必要がありません。単純に変数を宣言するだけで済みます。 var number = 42; このようにC++では、コンパイルの時点で型が確定するため、実行

  2. C++の型修飾子(type qualifier)とは?const・volatile・restrict・_Atomicをわかりやすく解説

    型修飾子とは何か 型修飾子(type qualifier)とは、ある型に適用することで「修飾型(qualified type)」を生成するキーワードのことです。たとえば const int は定数の整数を表す修飾型であり、それに対応する非修飾型である int は単なる整数を表します。 型修飾子は、型システムを通じて値に関する追加の情報を表現し、データの使用における正しさを保証するための重要な仕組みです。プログラマの意図をコンパイラに伝えることで、誤った操作をコンパイル時に検出できるようになります。 標準Cにおける4つの型修飾子 C11規格の時点で、標準Cには次の4つの型修飾子が存在します。