Designing Class Libraries for Visual Builders

By Arthur T. Jolin, David Lavin, and Susan Carpenter

Dr. Dobb's Journal June 1998

(a)
class IAddress : public IStandardNotifier {
  public:
    virtual IString
      street () const;
    virtual IAddress
     &setStreet (const IString& aStreet);
    static INotificationId const
      streetId;
  private:
    IString iStreet;
} ;
(b)
const INotificationId IAddress::streetId = "IAddress::street";
IString IAddress::street () const {
  return iStreet;
}
IAddress& IAddress::setStreet (const IString& aStreet) {
  if (iStreet != aStreet) {
    iStreet = aStreet;
    IString eventData(iStreet);
    notifyObservers(INotificationEvent(streetId, *this,
                      true, (void*)&eventData));
  } /* endif */
  return *this;
}

Example 1: Code enabling IAddress for notification. (a) Header file (.hpp); (b) code file (.cpp).

Back to Article


Copyright © 1998, Dr. Dobb's Journal