Supplement: C++ Code Examples

Example 15-2. C++ Code Fragments
class SalesTicket : public Component {
  public:
    void prtTicket();
}
SalesTicket::prtTicket() {
  // sales ticket printing code here
}
class Decorator : public Component {
  public:
    virtual void prtTicket();
    Decorator( Component *myC);
  private:
    Component *myComp;
}
Decorator::Decorator( Component *myC) {
  myComp= myC;
}
void Decorator::prtTicket() {
  myComp->prtTicket();
}
class Header1 : public Decorator {
  public:
    Header1( Component *myC);
    void prtTicket();
}
Header1::Header1 (Component *myC) : Decorator(myC) { }
void Header1::prtTicket () {
  // place printing header 1 code here
  Decorator::prtTicket();
}
class Header2 : public Decorator {
  public:
    Header2( Component *myC);
    void prtTicket();
}
Header2::Header2 (Component *myC) : Decorator(myC) { }
void Header2::prtTicket () {
  // place printing header 2 code here
  Decorator::prtTicket();
}
class Footer1 : public Decorator {
  public:
    Footer1( Component *myC);
    void prtTicket();
}
Footer1::Footer1 (Component *myC) : Decorator(myC) { }
void Footer1::prtTicket () {
  Decorator::prtTicket();
  // place printing footer 1 code here
}
class Footer2 : public Decorator {
  public:
    Footer2( Component *myC);
    void prtTicket();
}
Footer2::Footer2 (Component *myC) : Decorator(myC) { }
void Footer2::prtTicket () {
  Decorator::prtTicket();
  // place printing footer 2 code here
}

void SalesOrder::prtTicket () {

  Component *myST;
  // Get chain of Decorators and SalesTicket built by
  // another object that knows the rules to use.
  // This may be done in constructor instead of
  // each time this is called.
  myST= Configuration.getSalesTicket()

  // Print Ticket with headers and footers as needed
  myST->prtTicket();
}

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.143.103