我被赋予了一项任务,我应该创建一个存放超市产品的架子。产品类应存储产品ID,制造商和名称,并包含构造函数,tostring,get + set方法。
这一部分我不明白:“使用Vector / ArrayList创建一个名为Shelf的类来存储产品集合”。这是否意味着我必须在类中创建数组/向量或者什么?
货架类必须有一个addProduct方法,该方法将产品对象作为输入并将对象添加到货架中。
然后在驱动程序中,我需要:
创建产品对象的矢量/数组
创建货架对象
每次将产品放在货架上时,程序必须询问产品ID,制造商和产品。 name,创建一个新的产品对象,然后通过调用方法将产品添加到工具架上。 问题比这更长,但我只是坚持到这一步......
基本上我唯一的问题是
现在(部分)我的set方法是这样的: (在课堂上)
public:
Product(int id, string manufacturer, string name)
void setID(int newid)
(在司机中)
void Product::setID(int newid){ id = newid;}
我应该要求20个输入,我将使用for循环。但是,如何将我的set方法更改为要求用户输入的方法?
对于冗长的帖子感到抱歉,如果你做到这一点,谢谢你。任何帮助将不胜感激!
答案 0 :(得分:0)
我很确定
“创建一个名为Shelf的类来存储使用a的产品集合 矢量/ ArrayList的“
表示:创建一个包含Vector / ArrayList的类Shelf。 Shelf类的方法应该使用正确的参数调用Vector / ArrayList的方法。
答案 1 :(得分:0)
让我们分解要求。
使用Vector / ArrayList
创建一个名为Shelf的类来存储产品集合
您似乎至少需要两个课程:Shelf
和Product
。你还需要某种容器。
这可以建模为:
class Product
{
};
class Shelf
{
std::vector<Product> m_products;
};
如何使用从用户获取输入的set方法?
通常从用户那里获得输入涉及cin
。
class Product
{
unsigned int m_id;
public:
void setter(void)
{
std::cout << "Enter product ID: ";
cin >> m_id;
}
};
答案 2 :(得分:0)
创建一个货架对象&#39;意味着创建一个货架矢量/数组?
让暴露的API有助于添加单个/多个产品。因此,传递一个vector.Shelf将拥有它自己的载体
class Shelf
{
private:
vector<product> _products;
public:
void addProduct(vector<product> products){//copy the vector contents}
};