読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

今更ながらC++のenumを知らなかったのでお勉強

C++ C言語

お恥ずかしいことに今の今までenumを知らなかったのでお勉強した。
ちなみに存在は少し前に放送で聞いて知ってたけど結局勉強せず忘れてた・・・ということで今ならまだセーフさ ということでお勉強。

http://www.mapee.jp/cpp/enum.html

ここ参考にさせていただき...

enumってstructみたいな感じでtypedefして型とか定義できるみたいだ。

#include<cstdio>
#include<cstdlib>
#include<iostream>

using namespace std;

enum day_of_week {SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRYDAY,SATURDAY}; 
/*
とりあえずmainなどの関数内で定義してもいいし関数外で定義してもいいらしい。関数外だと普通にグローバルに扱えるんだと思う。

day_of_weekっていう名前のenum(列挙型)を定義。 値はSUNDAY,MONDAY...と曜日がならんでる。
*/

typedef enum day_of_week day;
/*
enum day_of_week を day という型にする
*/

int today_is_true(day*);//関数の前方宣言。上で定義したday型のポインタを受け取る関数。


int main(int argc,char** argv){

        day today = THURSDAY; //こんな感じで変数のように定義しenum定義時に指定した値のいずれかを代入可能。
        //enum day_of_week today = THURSDAY; と書くとこをtypedafでday型定義したので上の行のようにできる。

        int a = today_is_true(&today); // 関数を呼び出しtodayのポインタを渡す。

        if(a == 0) //戻り値が0ならば
                cout<<"Today is not "<<today<<endl;// 表示して
        return 0; //プログラム終了。
}

int today_is_true(day* d){ 
        if(*d == THURSDAY){ //受け取ったdayが THURSDAY ならば
                cout<<"true"<<endl; // true を表示し
                return 1; //1を返す
        }
        return 0; //それ意外なら0を返す。
}

こんなサンプルを書いてみた。

なるほど。よくわかった・・・ b

Firefox ブラウザ無料ダウンロード