codepad.org を使用しています
class a {
private:
const unsigned long b = 100;
};
3 行目: エラー: ISO C++ はメンバー 'b' の初期化を禁止しています
-Wfatal-errors によりコンパイルが終了しました。
明らかな何かを見逃していたら申し訳ありませんが、何が間違っているのでしょうか?
C++11 より前では、クラス定義で static const データ メンバーのみを初期化できます。
static const unsigned long b = 100;
とにかく、これは通常、あなたが望むものです。a
のすべてのインスタンスでこの定数値が重複していてもあまり意味がありません。
C++11 サポートを有効にすると、コードはコンパイルされます。
static
const
クラス内の初期化はC++03 の整数型に対してのみ許可されており、変数は許可されていませんstatic
。
作成するかstatic
(この場合は、定義する必要があります。この場合も定義する必要があることに注意してください)、C++11 コンパイラを使用します。