私のクラスの1つに対してコンストラクタが呼び出されたとき、私は奇妙なエラーに遭遇しています。基本的には、私がやっていることは次のとおりです:メンバー変数とコンストラクタコールに関するC++での作成プロセス
私は、クラス "B"、 "C"の2つのメンバー変数を持つクラス "A"を持っています。 "C" はタイプ "B"のメンバーで開始されるを持っています。だから、コンストラクタがなければならない:
A::A():
c(b)
{}
クラスは次のようにレイアウトされている場合、これが正常に動作します:
class A
{
C c;
B b;
}
マイ:クラスは次のようにレイアウトされている場合
class A
{
B b;
C c;
}
しかし、クラッシュしましたまず、コンストラクタで をc(b)に初期化しようとしている場合、cの前にbを作成する必要があります。私はこれが正しいかどうかわからない。 というコンストラクタがの前に割り当てられていますか?または、コンストラクタ内で参照されている メンバ変数が先に割り当てられ、コンストラクタの末尾に の参照されていないメンバ変数が割り当てられています(たとえば、 という別のメンバ変数 "C c2"がコンストラクタで参照されていない)
私は、Visual Studioの午前2010
素晴らしいです、ありがとう! – coderunner
番号4は7より前にいつでも実行できます。 –