阅读下列说明和C++-代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰( Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。
【C++代码】
#include
<iostream>
using
namespace std;
class Invoice{
public:
(1) {
cout<<"This is the content of the
invoice!"<<endl;
}
};
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<<”------------------------”<<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!
相关试题
-
阅读下列说明和C++-代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰
-
阅读下列说明和java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(D
-
The content of the commercial invoice does not include
-
is updated on the invoice when you post a complete payment? Note:There are 2 correct answers to this
-
The precision of this adjustment is important.