2017-12-28 13 views
-2

Tileという名前のクラスに新しいメンバ(Info m_info)を追加しました。タイルc'tor:エラーC2512:適切なデフォルトのコンストラクタが使用できません(コード内にデフォルトのctorを使用しません)

Tile::Tile(const image& myImage): m_image(myImage) 
{  
    Info myInfo(1,0,VAL); 
    m_info = myInfo; 
} 

これは、Infoクラスです:

class Info 
{ 
public: 

    Info(bool b1, bool b1, Car c1): 
     b1(b1), b2(b2), c1(c1){} 

    bool b1; 
    bool b2;  
    Car c1; 
}; 

私はエラー "エラーC2512: '情報':利用可能なし適切なデフォルトコンストラクタ" を取得しています。どうして?使用できるc'torをパラメータとともに使用しているので、デフォルトのc'torが必要であることはわかりません。

+1

を必要とする私の水晶玉は 'm_info'が' Info'あり、そのようにあなたがいないパラメータで初期化されなければならないことを私に伝えますここでやった。 – Quentin

+0

@Quentin私はあなたのクリスタルボールが好きです、エンジニアとして働くためにそれを雇ってください;) – organicoman

答えて

1

Tile(const image& myImage)コンストラクタでは、Tilemember initializer listに記載されていないため、デフォルトコンストラクタを使用してm_infoを初期化します。次に、別の(デフォルト以外の)値を割り当てようとします。最初の場所で正しくm_infoを構築するために

、あなたは

Tile::Tile(const image& myImage): m_image(myImage), m_info(1,0,VAL) 
{  
} 
関連する問題