2017-12-28 12 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; 
} 

이 정보 클래스입니다 :

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'이며, 그러한이 매개 변수를 초기화해야하기 때문에 '라고 나에게 이야기해야합니다, 처음에 제대로 m_info를 구성하려면 여기서 해. – Quentin

+0

@Quentin 나는 당신의 수정 구슬이 맘에 든다. 당신은 그것을 엔지니어로 고용해야한다.) – organicoman

답변

1

Tile(const image& myImage) 생성자에서는 Tilemember initializer list에 언급되어 있지 않기 때문에 기본 생성자를 사용하여 m_info을 초기화합니다. 그런 다음 다른 (기본값이 아닌) 값을 할당하려고 시도합니다.

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