Designing Class Libraries for Visual Builders
By Arthur T. Jolin, David Lavin, and Susan Carpenter
Dr. Dobb's Journal June 1998
<B>(a)</B> class IAddress : public IStandardNotifier { public: virtual IString street () const; virtual IAddress &setStreet (const IString& aStreet); static INotificationId const streetId; private: IString iStreet; } ; <B>(b)</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).
Copyright © 1998, Dr. Dobb's Journal