使用set方法获取用户输入的C ++类和对象?

时间:2016-01-11 16:14:23

标签: c++

我被赋予了一项任务,我应该创建一个存放超市产品的架子。产品类应存储产品ID,制造商和名称,并包含构造函数,tostring,get + set方法。

这一部分我不明白:“使用Vector / ArrayList创建一个名为Shelf的类来存储产品集合”。这是否意味着我必须在类中创建数组/向量或者什么?

货架类必须有一个addProduct方法,该方法将产品对象作为输入并将对象添加到货架中。

然后在驱动程序中,我需要:

  1. 创建产品对象的矢量/数组

  2. 创建货架对象

  3. 每次将产品放在货架上时,程序必须询问产品ID,制造商和产品。 name,创建一个新的产品对象,然后通过调用方法将产品添加到工具架上。 问题比这更长,但我只是坚持到这一步......

  4. 基本上我唯一的问题是

    1. 确实'创建一个货架对象'意味着创建货架矢量/数组?
    2. 如何使用从用户获取输入的set方法?
    3. 现在(部分)我的set方法是这样的: (在课堂上)

      public:
      
      Product(int id, string manufacturer, string name)
      
      void setID(int newid)
      

      (在司机中)

      void Product::setID(int newid){ id = newid;}
      

      我应该要求20个输入,我将使用for循环。但是,如何将我的set方法更改为要求用户输入的方法?

      对于冗长的帖子感到抱歉,如果你做到这一点,谢谢你。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:0)

我很确定

  

“创建一个名为Shelf的类来存储使用a的产品集合   矢量/ ArrayList的“

表示:创建一个包含Vector / ArrayList的类Shelf。 Shelf类的方法应该使用正确的参数调用Vector / ArrayList的方法。

答案 1 :(得分:0)

让我们分解要求。

  

使用Vector / ArrayList

创建一个名为Shelf的类来存储产品集合

您似乎至少需要两个课程:ShelfProduct。你还需要某种容器。

这可以建模为:

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}
};