>>150
確かにできるけど、バイトコードがえげつない増え方したりして微妙に恐怖をそそる。

C++なら、int で済む限りは、そこはenumだろうね。
#define 使っちゃったら、スコープがヘッダ単位になってしまう。

本来列挙子であるところの enum で定数定義するのは無作法呼ばわりされかねないけど、
スコープはクラス内で決着するし、クラス内定数としての使い勝手は悪くないよ。
C++の建前としては、intサイズであるのも保証されてるそうだし。
守ってくれない(最適化等で勝手にcharサイズにしちゃったりとかする)コンパイラも多くって、
本当に仕様なんだろうかと思うことも多いけど。