刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

请填写C++代码中的空缺部分,完成超市销售系统的部分功能。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1):public Item
(2)this->price=price
(3)visitor->visit(this)
(4)public visitor
(5)void visit(Book*book)
(6)item->accept(visitor)


解析:

本题考察的是访问者模式在C++中的应用。访问者模式是一种行为设计模式,它封装了某些作用于某种数据结构(这里是Item类及其子类,如Book类)中各元素的操作。这种模式的目的是在不改变数据结构的前提下定义作用于这些元素的新操作。

(1)在类图中,Book类继承自Item类,所以应该是public : Item。这表明Book类是一个具体的Item类型。

(2)在Book类的构造函数中,需要初始化价格属性。使用this指针调用基类的构造函数或初始化成员变量。因此,应该是this->price = price。

(3)在Book类中实现accept方法时,需要调用Visitor的visit方法。因此,应该是visitor->visit(this)。这表示当前Book对象被访问并执行相应的操作。

(4)Cashier类需要一个Visitor类型的成员变量来处理不同类型的Item。因此,应该是public Visitor。这表明Cashier类可以访问和操作Visitor对象。

(5)在Cashier类中定义visit方法来处理特定的Item类型,这里是Book类。因此,需要定义一个void visit(Book* book)方法。在这个方法中,可以处理Book对象的特定操作,如计算价格等。

(6)在ShoppingCart类的calculatePrice方法中,需要遍历购物车中的物品并访问它们。使用accept方法访问每个Item对象,并累加价格。因此,应该是items[i]->accept(visitor)。这表示购物车中的每个物品都被访问并计算价格。最后,通过Cashier对象的getTotal方法获取总价。

创作类型:
原创

本文链接:请填写C++代码中的空缺部分,完成超市销售系统的部分功能。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share