這是我的代碼,用於合併來自兩個不同文件的描述和價格並將其存儲在'priceList'中。我的問題是,每當我製作一個'產品'的對象,它給我錯誤no viable conversion from 'w9::Product *' to 'w9::List<w9::Product>
。沒有可行的從'w9 :: Product *'轉換爲'w9 ::列表<w9::Product>'
我試圖做std::unique_ptr<w9::Product> product (new w9::Product(desc[i].desc, price[j].price));
但產品不會加我的價目表,因爲它說no viable overloaded +=
w9::List<w9::Product> merge(const w9::List<w9::Description>& desc,
const w9::List<w9::Price>& price) {
w9::List<w9::Product> priceList;
for(int i = 0; i < desc.size(); i++) {
for(int j = 0; j < price.size(); j++) {
if(price[j].code == desc[i].code) {
w9::List<w9::Product> product = new w9::Product(desc[i].desc,
price[j].price);
priceList += product;
}
}
}
return priceList;
}
輸出應該是這樣的:
Code Description
4662 tomatoes
4039 cucumbers
4056 brocolli
4067 lemons
4068 oranges
Code Price
4067 0.99
4068 0.67
4039 1.99
4056 2.49
Description Price
cucumbers 1.99
brocolli 2.49
lemons 0.99
oranges 0.67
而且,List是一個類模板,所以我認爲typename T是std :: unique_ptr,我不允許更改我的頭文件中包含List和Pro的代碼風管,描述和價格。
非常感謝。我在開始時嘗試使用w9 :: Product,並意識到不使用'*'的巨大差異。此外,我嘗試了兩個,但是當我使用unique_ptr時,它不允許我將產品添加到我的priceList。但第一個是有效的。 TY – user2853311