【初心者歓迎】C/C++室 Ver.14【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0165デフォルトの名無しさん
05/03/07 10:15:141. 型エラーについて
型エラー : invalid conversion from `int' to `Keyname'
列挙子に対しては、「明示的」 にしか、整数系データ型の値を入れることはできない。
従って、直接数値を代入する書き方は違法であり、型エラーとなる。
Keyname optionkey = 5; // 型エラー
Keyname optionkey = Keyname(5); // ok
2. 列挙子の範囲について
例えば、
enum Keyname { keyShift = 1, keyCtrl = 2, keyAlt = 4 };
と定義したときの、Keyname型の上限値は 「7」 である。
これは、
> 列挙の上限は、列挙に含まれるすべての列挙子の値よりも大きい
> 2の累乗値マイナス1のなかでもっとも小さい値である。
による。
もし>>159がこれまで列挙子について誤解をしていたのなら、
文字通りの例が禿本(プログラミング言語C++ 第3版)の§4.8 列挙(手元の第一刷ではp.112)
に書かれているから、読み直して勉強するといい。
■ このスレッドは過去ログ倉庫に格納されています