非常に簡単な質問。これは有効なC++ 11ですか?別の非staticの非スタティックメンバーイニシャライザ
struct Foo {
int bar = 1;
int baz = bar;
};
GCC(4.7.2)とクラン(3.1)知識をひけらかすの設定で、それを受け入れる両方:
-std=c++11 -Wall -W -pedantic
インテルC++(13.0.1.117)がありません。
権利であるerror: a nonstatic member reference must be relative to a specific object
:それはでint baz = bar;
で吠えますか?
、私はそれがかなりコンストラクタに最後の行を移動するよりも、より緊密初期化コードをもたらし、このようなコード、のためにこれを使用します。
uint8_t colorR = -1;
uint8_t colorG = -1;
uint8_t colorB = -1;
uint8_t colorA = -1;
GLubyte RGBAVec[4] = {colorR, colorG, colorB, colorA};
感謝。それは決定的に見える。 「またはそのクラスから派生したクラス」は何を意味していますか?どのように派生クラスのメンバでメンバを初期化することが可能ですか?派生クラスはまだ宣言されていないため、アクセスすることはできません。 –
@Nikos C. "またはそのクラスから派生したクラスの"は、初期化子が犠牲クラスにあるものであることを意味する "ブレースまたは同等イニシャライザ"を参照します。基本的には、あなたは親クラスの非静的データメンバーで非静的データメンバーを初期化できることを意味すると思います。それはあなたがそれを理解した人の周りのもう一つの方法であり、はるかに意味があります:) – Drax