int main(int argc, char** argv) { Subject subject; subject.addObserver(ObserverObject(new Observer(1))); subject.addObserver(ObserverObject(new Observer(2))); subject.addObserver(ObserverObject(new Observer(3))); subject.addObserver(ObserverObject(new Observer(4))); subject.addObserver(ObserverObject(new Observer(5))); subject.changeSubject(); std::this_thread::sleep_for(std::chrono::seconds(1)); return 0; }
int main(int argc, char **argv) { printf("\n\nBEGIN OF PROGRAM\n\n"); Physics physics; Unit unit("foo"); AudioObserver audioObserver; GraphicsObserver graphicsObserver; Observer baseObserver; Subject base = Subject::base(); base.addObserver(&audioObserver); base.addObserver(&audioObserver); physics.subject()->addObserver(&audioObserver); physics.subject()->addObserver(&graphicsObserver); physics.subject()->addObserver(&baseObserver); for (unsigned int i = 0; i < 6; i++) { physics.updateUnit(unit); if (i == 3) { physics.subject()->removeObserver(&baseObserver); printf("#INFO: Base Observer removed\n"); } } printf("\n\nEND OF PROGRAM\n"); }