我有一个名为“Store”的类,它有两个类型为“set”的数据字段:“customers”(类型为std :: set)和“albums”(类型为std::set<Album>
)。
std::set<Album> albums;
std::set<Customer> customers;
现在,当我尝试将数据保存到其中一个集合时 - 一切正常,但在“Customer”类型中,我有第三个名为orders(类型为std :: set)的集合,当我尝试保存时它的数据(在我离开保存数据的函数之后)就消失了!
这是我如何将数据保存到它:
Customer foundCustomer = *Customer::findID(customers ,id);
Order newOrder = Order();
newOrder.ordNum = ordNum;
newOrder.isPaid = false;
foundCustomer.orders.insert(newOrder);
告诉我你是否需要我发布更多代码。
非常感谢帮助!
答案 0 :(得分:1)
Customer foundCustomer = *Customer::findID(customers ,id);
此行生成客户的副本。如果要修改他设置的原始客户,则需要使用引用:
Customer& foundCustomer = *Customer::findID(customers ,id);
并确保*Customer::findID(...)
也会产生参考。