案例分析题

试题六
阅读下列说明和 C++代码, 填补代码中的空缺, 将解答填入答题纸的对应栏内。

【说明 】
以下 C++代码实现一个超市简单销售系统中的部分功能, 顾客选择图书等物品(Item) 加入购物车(ShoppingCart) , 到收银台(Cashier) 对每个购物车中的物品统计其价格进行结账,设计如图 6-1 所示类图。

【正确答案】

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

【答案解析】

这里考察的是访问者模式。 其定义如下: 封装某些作用于某种数据结构中各元素的操作, 它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。