问答题 阅读下列说明和C++代码,回答下列问题。
[说明]
在超市销售管理系统中通常需要根据顾客需求打印购物小票,在购物小票中体现所购买的物品名称、数量、单价及总价等信息,以及购物时间、收银员号码等基本信息。而且有的需要打印票据的头信息(如欢迎辞等),有的需要打印票据的页脚信息(如促销打折广告提示信息等),有的只需要打印票据的内容。并且这些信息的内容及打印位置也需要根据具体情况而发生变动,相当于是对购物小票的额外装饰了。
以上这些功能采用装饰器(Decorator)设计模式来设计,得到的类图如图7-15所示。
以下C++代码可为购物小票动态添加各种抬头和注释信息。
【正确答案】virtual void DaYinXiaoPiao()
public cxiaopiao
public cxiaopiao
protected
virtual void DaYinXiaoPiao()
结构
当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能
【答案解析】