C++类和对象使用set方法获得用户输入

C++ classes and objects getting user input using set method?

本文关键字:方法 用户 输入 set 对象 C++      更新时间:2023-10-16

我得到了一项任务,我应该创建一个存放超市产品的货架。products类应该存储产品ID、制造商和名称,并包括构造函数、tostring、get+set方法。

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

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

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

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

  2. 创建货架对象

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

基本上我唯一的问题是

  1. "创建货架对象"是指创建货架向量/阵列吗
  2. 如何使用从用户那里获得输入的set方法

现在(的一部分)我的set方法是这样的:(同类)

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

(在驱动器中)

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

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

很抱歉发了这么长的帖子,如果你能做到这一点,谢谢你。任何帮助都将不胜感激!

我很确定

"创建一个名为Shelf的类,以使用矢量/阵列列表"

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

让我们分解一下需求。

创建一个名为Shelf的类,使用Vector/ArrayList 存储产品集合

看起来您至少需要两个类: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;
    }
};

"创建货架对象"是指创建货架向量/阵列吗?

让公开的API促进单个/多个产品的添加。因此,给它传递一个向量。货架将有自己的矢量

class Shelf
{
   private:
   vector<product> _products;
   public:
   void addProduct(vector<product> products){//copy the vector contents}
};