我已经将一个新成员(Info m_info)添加到一个名为Tile的类中,并希望使用值作为Tile c'tor的一部分初始化这个新成员:
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。
答案 0 :(得分:1)
在Tile(const image& myImage)
构造函数中,您使用其默认构造函数初始化m_info
(因为Tile
的{{3}}中没有提到它)。然后,您尝试为其分配另一个(非默认)值。
首先正确构建m_info
,您需要
Tile::Tile(const image& myImage): m_image(myImage), m_info(1,0,VAL)
{
}