#include "observer.h" int main() { ConcreteSubject s1("s1"); ConcreteSubject s2("s2"); ConcreteObserver o1("o1"); ConcreteObserver o2("o2"); ConcreteObserver o3("o3"); o1.AttachSubject(&s1); o1.AttachSubject(&s2); o2.AttachSubject(&s1); o3.AttachSubject(&s2); s1.SetState(5); s2.SetState(2); } /* program output: Observer o1 queries Subject s1 for new state 5 Observer o2 queries Subject s1 for new state 5 Observer o1 queries Subject s2 for new state 2 Observer o3 queries Subject s2 for new state 2 */