c++ - 将特定字段从向量复制到另一个向量
问题描述
我正在尝试为 C++ 程序制作一个篮子系统,我的任务是从一个单独的类中的一个向量中获取价格,并将该价格复制到新的“篮子”向量中。我尝试了许多解决方法,但我已经得到它返回标识符未定义的错误消息,即使向量在类中是公共的。
头文件:
class Item {
private:
int _ItemNo;
string _category, _description;
double _price;
double _VAT = _price*0.2;
double _subtotal = _price + _VAT;
};
class ItemMenu {
public:
vector<Item> _Items;
ItemMenu();
void displayMenu();
};
//Class for ordering from the menu
class Ordering {
private:
vector<Item> _Basket;
int quantity;
double total;
public:
Ordering();
Ordering(int quantity, double total);
void placeOrder(const vector<Item> &Items);
实现文件:
ItemMenu::ItemMenu() {
ifstream fin("Menu.txt");
if(fin) {
while(!fin.eof()) {
string _ItemNoTemp;
getline(fin, _ItemNoTemp, ':');
int _ItemNo = stoi(_ItemNoTemp);
string _category;
getline(fin, _category, ':');
string _description;
getline(fin, _description, ':');
string _priceTemp;
getline(fin, _priceTemp);
double _price = stod(_priceTemp);
if(!fin.eof()) {
_Items.push_back(Item(_ItemNo,
_category, _description, _price));
};
fin.peek();
}
fin.close();
}
}
//Method to display the each item
void ItemMenu::displayMenu() {
for(int i = 0; i < _Items.size(); ++i) {
_Items[i].display();
}
cout << endl;
}
Ordering::Ordering() { }
void Ordering::placeOrder() {
int select;
cout << "Please enter an item number: ";
cin >> select;
Item I;
i._subtotal = _Items[select]._subtotal;
_Basket.push_back(i);
}
篮子向量位于排序类中,我试图获取项目的小计,以便我可以通过对向量中的值求和来计算总数。这也是 _Items 未定义的错误出现的地方。我是编程新手,还没有真正找到一个明确的来源,说明向量如何在类之间工作,具体取决于它们的声明位置。
解决方案
像这样的东西应该工作
void Ordering::placeOrder(
const vector<Item>& items ) {
int select;
cout << "Please enter an item number: ";
cin >> select;
cItem i;
i._price = items[ select ]._price;
_Basket.push_back( i );
}
推荐阅读
- java - 如何解析地点 XML api 并在谷歌地图上标记
- puppeteer - PuppeteerSharp:带有滚动的 PDF 生成页面
- c# - 如何绑定
从资源字典中使用 MVVM 和数据绑定 - bootstrap-4 - 在使用 Bootstrap 3.3.1 升级之前,使用 Bootstrap 4.6.0 动态选项卡无法正常工作
- typescript - 如何在 React-Quill 内容中上传图片?
- javascript - 将表格另存为 PDF
- real-time - 如何将凉亭上的实时因子设置为 1?
- r - r中重复行的序列号
- r - 如何用ggplot中的符号替换轴上的数字?
- python - 硬币变化(我的递归逻辑有效,但添加记忆时它不起作用)