微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改未在参考文献中反映出来

如何解决更改未在参考文献中反映出来

我正在做一个作业,在该作业中,我们应该编写公司的一个非常基本的方案来管理其产品。因此,当输入新产品时,我们应该检查它是否已经存在(我们应该通过将产品名称与输入的产品名称进行比较来做到这一点;空产品的名称为空字符串),如果我们找不到它,那么我们应该将其添加到公司的产品列表中(最多只能有3种产品,因此我要逐一检查每个产品)。

class Store : public Product {
public:
        ...
        Product& return_product_1() {return product1;}
        Product& return_product_2() {return product2;}
        Product& return_product_3() {return product3;}

private:
        Product product1;
        Product product2;
        Product product3;
        ...
        
};

因此,我认为我可以使用一个函数来返回对当前为空的对象的引用(由于所有三个Product对象都是单独存储在类中的,因此添加删除对象只是从以下位置询问其详细信息)用户或将数据成员分别设置为NULL),因此我创建了以下函数来查找特定的Product对象。我传递了一个字符串n,以检查是否有任何Product对象与n具有相同的名称,并且我还传递了一个空的Product对象,以便我可以制作{{1} }与返回的p同义,因为它们都是引用。 (之所以这样做,是因为我想同时返回正确的Product对象和布尔值。我本可以使用Product来返回它们两个,但我不想这样做。>

std::pair

bool StarberksInterface::search(string n,Product& p) { if(store.return_product_1().product_name() == n) { p = store.return_product_1(); return true; } else if(store.return_product_2().product_name() == n){ p = store.return_product_2(); return true; } else if(store.return_product_3().product_name() == n) { p = store.return_product_3(); return true; } else return false; // The function returns true when a Product object which the same name as the first parameter is found } 定义为

product_name

其中std::string product_name() const {return name;} name类的类型std::string的数据成员。

使用函数调用Product调用函数search(string,Product&),其中我传递一个空字符串以检查当前为空的产品,并且p声明为search("",p);

我声明了另一个Product p;对象Product,其中Product temp = input();声明为input,它询问用户有关产品的信息并返回{{1} }对象。我已经重载了Product input();类的赋值运算符。

然后我写

Product

现在我在想的是,由于Product将返回一个引用,并且p = temp; 被分配了return_product_1的值,因此preturn_product_1应该是同义词(假设p函数最初发现product1确实具有一个空字符串作为名称)。对search所做的任何更改都应反映在product1中,但事实并非如此。我希望将p的详细信息也分配给product1,因为我将temp分配给了product1。我的代码或逻辑有问题吗? 任何帮助表示赞赏。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。