gpt4 book ai didi

c++ - 输入/输出对象 vector

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:16:10 25 4
gpt4 key购买 nike

Tl;dr 我有一堆代码,无法知道哪里出了问题以及如何修复它。

这个程序需要有一个“Item”类来存储名称、价格等。第二个类必须列出项目并可以选择打印、删除项目等。我还没有学过std: :list 但我正在使用 vector 。我得到的唯一错误是倒数第二行中的“expected primary-expression before 'groceries'”。

    class Item
{
protected:
string itemName, unit; // (i.e. can, box, pounds, or ounces)
double numberToBuy, unitPrice, extendedPrice;

public:
Item();
Item (string, string, double, double);
string getName ();
string getUnit();
double getNumberToBuy();
double getUnitPrice();
double getExtendedPrice();
void printItem();
};

class List
{
private:
Item item;
int numberOfItems;
vector <Item> groceries;

public:
void addItem();
void print();
};

void List::addItem()
{
int stop;

while (stop != 666)
{
cout << "Enter the name of your item " << endl;
string name;
getline(cin, name);
cin.ignore();
cout << "Enter the units of your item " << endl;
string unit;
getline(cin, unit);
cout << "Enter the amount you would like to buy "<< endl;
double amount;
cin >> amount;
cout << "Enter the price of your item " << endl;
double price;
cin >> price;
//Item *item = new Item(name, unit, amount, price);
// ^^^I don't think I need this but I'm not quite sure.
groceries.push_back(item);
cin >> stop;
}
}

void List::print()
{
auto v = vector<Item> groceries;

copy(begin(v), end(v), ostream_iterator<Item>(cout, " "));
}

最佳答案

在你的Item类中,你需要定义set类型的函数,这样string和double成员数据才能取值。截至目前,您只定义了返回值的 get 类型函数。

例如……

void setNumberToBuy(const double& val) {
numberToBuy = val;
}

然后,在您的 List::addItem() 成员函数中,您需要调用那些 set 类型的函数,以便为项目对象提供数据...

cout << "Enter the amount you would like to buy " << endl;
double amount;
cin >> amount;
item.setNumberToBuy(amount);

...所以最后,当您这样做时...

groceries.push_back(item);

...项目对象将充满数据。

关于c++ - 输入/输出对象 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com