阅读下列说明和C++-代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

考试题库2022-08-02  12

问题 阅读下列说明和C++-代码,将应填入  (n)  处的字句写在答题纸的对应栏内。【说明】    某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰( Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。【C++代码】#include<iostream>usingnamespace std;class Invoice{public:    (1)   {          cout<<"This is the content of theinvoice!"<<endl;    }};classDecorator : public Invoice {     Invoice *ticket;public:    Decorator(lnvoice *t)      { ticket = t; }     void printInvoice( ){         if(ticket != NULL) (2);   } };classHeadDecorator : public Decorator{public:    HeadDecorator(lnvoice*t): Decorator(t) { }     void printInvoice( ) {            cout<< "This is theheader of the invoice! "<< endl;     (3)     ;    }  };   class FootDecorator : public Decorator{ public:    FootDecorator(Invoice *t): Decorator(t) { }     void printlnvoice( ){                 (4)   ;             cout<< "This is thefootnote of the invoice!"<< endl;    }};int main(void){    Invoice t;    FootDecorator f(&t);    HeadDecorator h(&f);    h.printInvoice( );   cout<<”------------------------”<<endl;    FootDecorator a(NULL) ;                                                                                                                                       HeadDecorator b(     (5)   );    b.printInvoice( );    return 0;}程序的输出结果为:    This is the header of the invoice!    This is the content of the invoice!    This is the footnote of the invoice!    ----------------------------    This is the header of the invoice!    This is the footnote of the invoice!

选项

答案

解析 (1) virtual void printInvoice()
(2) ticket->printInvoice()
(3) Decorator::printInvoice()
(4) Decorator::printInvoice()
(5) &a
转载请注明原文地址:https://tihaiku.com/congyezige/2407735.html

最新回复(0)