【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!