阅读以下说明和C++程序代码,将应填入(n)处的字句写在答题纸的对应栏内。 [说明] 在下面的C++代码中,类SalesTicket能够完成打印票据正文的功能,类HeadDecorator与FootDecorator分别完成打印票据的抬头和脚注

admin2010-01-15  29

问题 阅读以下说明和C++程序代码,将应填入(n)处的字句写在答题纸的对应栏内。
   [说明]
   在下面的C++代码中,类SalesTicket能够完成打印票据正文的功能,类HeadDecorator与FootDecorator分别完成打印票据的抬头和脚注的功能。已知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。
   这是票据的抬头!
   这是票据正文!
   这是票据的脚注!
   --------------------------------------
   这是票据的抬头!
   这是票据的脚注!
   [C++程序代码]
   #include<iostream>
   using namespace std;
   class SalesTicket{
   public;
         (1)  printTicket(){cout<<"这是票据正文!"<<endl;}
   };
   class Decorator:public SalesTicket{
       SalesTicket *ticket;
   public:
       Decorator (SalesTicke *t){ticket=t;}
       void printTicket  (){
           if (ticket!=NULL)
               ticket->printTicket() ;
       }
   };
   class HeadDecorator:public Decorator{
   public:
       HeadDecorator(SalesTicket *t):  (2)  {}
       void printTicket(){
           cout<<"这是票据的抬头!" <<endl;
           Decorator::printTicket();
       }
   };
   class FootDecorator:public Decorator{
   public:
       FootDecorator(SalesTicket *t):  (3)  {}
       void printTicket(){
           Decorator::printTicket();
           cout<<"这是票据的脚注!"<<endl;
       }
   };
   void main  (void){
       SalesTicket t;
       FootDecorator f(&t);
       HeadDecorator h((4));
       h.printTicket();
       cout<<"---------------------"<<endl;
       FootDecorator a(NULL);
       HeadDecorator b((5));
       b.printTicket();
   }

选项

答案(1)virtual void;(2)Decorator(t);(3)Decorator(t);(4)&f;(5)&a

解析
转载请注明原文地址:https://kaotiyun.com/show/pIjZ777K
0

最新回复(0)