阅读下列说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰( Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。 【C++代码】 #include using namespace std; class Invoice{ public: (1) { cout<<"This is the content of the invoice!"< } }; class Decorator : public Invoice { Invoice *ticket; public: Decorator(lnvoice *t) { ticket = t; } void printInvoice(){ if(ticket != NULL) (2); } }; class HeadDecorator : public Decorator{ public: HeadDecorator(lnvoice*t): Decorator(t) { } void printInvoice() { cout<< "This is the header of the invoice! "<< endl; (3) ; } }; class FootDecorator : public Decorator{ public: FootDecorator(Invoice *t): Decorator(t) { } void printlnvoice(){ (4) ; cout<< "This is the footnote of the invoice!"<< endl; } }; int main(void) { Invoice t; FootDecorator f(&t); HeadDecorator h(&f); h.printInvoice(); cout<<”------------------------”< 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! 信管网试题答案与解析:www.cnitpm.com/st/3817318035.html