我的代码中存在问题(编译问题)。如果你能向我解释为什么会这样,以及我如何解决它,我会很高兴。
错误 -
错误C2512:'项目':没有合适的默认承包商
*项目是一组
发生此错误的行不在我的代码中,文件中的问题称为元组,但在我的代码中,问题显示在我执行此操作时 -
void init(map <int, Item>& itemli)
{
Item temp("ro","1",1,1.99);
itemli[1] = (temp);
temp.setName("bo");
temp.setSerialNumber("2");
temp.setUnitPrice(2.22)
// And so it goes on ...
}
我的承包商 -
Item::Item(string name,string serialNumber,int count, double unitPrice)
{
_name = name;
_serialNumber = serialNumber;
_count = count;
_unitPrice = unitPrice;
}
感谢您的帮助!
答案 0 :(得分:0)
您滥用此行itemli[1] = (temp);
相反,你应该做
Item temp("ro","1",1,1.99);
temp.setName("bo");
temp.setSerialNumber("2");
temp.setUnitPrice(2.22)
itemli.insert(std::make_pair(1, temp);//Moved so that setName will relect to temp in Map
// And so it goes on ...
temp
是普通对象(非指针),因此如果要将std::map will make a copy of your Item and put it into itemli