#pragma once #include class Observer; class Subject { public: Subject(); virtual ~Subject(); virtual void addObserver(Observer*); virtual void delObserver(Observer*); protected: virtual void notify(Subject*); private: std::list mp_Observers; };