2016-12-17 7 views
0

、私は以下のような2つの列挙型があります。は、列挙型の入力パラメータにNULLを渡す私のコードはC++

enum myEnum{e1, e2}; 
enum myEnum2{e3, e4}; 

を私は以下のような関数のプロトタイプがありますいくつかの条件で

void function myFunc(myEnum in_enum1, myEnum in_enum2){ 

    some-code-here; 

} 

を、I 2番目の入力パラメータin_enum2を空にしなければなりません。

NULLを渡そうとしましたが、コンパイラはパラメータ初期化エラーを出しました。

列挙型入力パラメータにNULLを渡すにはどうすればよいですか?

ありがとうございます。

答えて

1

基本型の列挙型は、本来はintです。これらはポインタではないため、nullにはできません。

あなたの列挙型へのポインタを使用するか、列挙型にNULLオプションを追加することができます。後者は次のとおりです。

enum myEnum{NULL, e1, e2}; 
enum myEnum2{NULL, e3, e4}; 

次に、列挙型のNULLリテラルで呼び出します。

myFunc(myEnum::NULL, myEnum2::NULL); 
+1

マクロのNULLの定義方法によって異なります。それが '0'として定義されている場合、それは暗黙的に(スコープのない)enumに変換される可能性があります。 – MikeMB

+0

良い点は、 'myEnum :: NULL'から' myEnum :: null'に変更することです。 –

関連する問題