问题 填空题

[说明]
在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了Decorator(修饰)模式。SalesOrder对象使用一个SalesTicket对象打印销售票据,先打印销售票据内容,然后再打印脚注。图显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。


[C++代码]
class Component
public:
______ void prtTicket() = 0;
;
class SalesTicket : public Component
public:
void prtTicket()
cout<<"Sales Ticket!"<<endl;

;
class Decorator : public Component
public:
virtual void prtTicket();
Decorator(Component *myC);
private:
______ myComp;
;
Decorator∷Decorator(Component *myC)

myComp = myC;

void Decorator∷prtTicket()

myComp->prtTicket();

class Footer : public Decorator
public:
Footer(Component *myC);
void prtTicket();
void prtFooter();
;
Footer∷Footer(Component *myC) : ______
void Footer∷prtFooter()

cout<<"Footer"<<end1;

void Footer∷prtTicket ()

______;
prtFooter();

class SalesOrder
public:
void prtTicket();
;
void SalesOrder∷prtTicket()

Component *myST;
myST = new Footer______;
myST->prtTicket();

答案

参考答案:virtual
Component*
Decorator(myC)
Decorator∷prtTicket()
new SalesTicket()

多项选择题
单项选择题