Ryan's District Boards

Computer, programming, and webmaster help , support , tips and tricks => Tutorials Zone! => Internet webmaster computer programming technology tips and tricks => C++ / C / C# ....Tutorials => Topic started by: ben2ong2 on October 07, 2006, 04:01:57 AM

Title: C++ tips - Callbacks and multiple inheritance, part II
Post by: ben2ong2 on October 07, 2006, 04:01:57 AM
This example is based upon "Subobject Members", Stephen Dewhurst,
C++ Report, V5 N3. This is part 2 of a multipart example.

In this example, assume that the engine-button example of the previous
tip are extended two include two buttons. One will be for starting the
engine, one for stopping. Using the design technique of the previous
example, one would have:

.................................................................

class StartButtonCallback : public ButtonCallback {
  public:
    void callback () { start (); }
    virtual void start () = 0;
};

.................................................................

class StopButtonCallback : public ButtonCallback {
  public:
    void callback () { stop (); }
    virtual void stop () = 0;
};

.................................................................

class Engine : public StartButtonCallback,
          public StopButtonCallback {
    // ...
  public:
    void start ();
    void stop  ();
};

.................................................................

The first drawback with this approach is the global namespace
pollution introduced by the two callback classes. In addition,
these classes are unlikely to be reused except with engines.