首页 > 代码库 > 面试:C++观察者模式实现
面试:C++观察者模式实现
1 #include <list> 2 3 class Subject; 4 5 class Observer{ 6 public: 7 virtual ~Observer(){}; 8 virtual void update(Subject * sub){}; 9 protected:10 Observer(){};11 12 };13 14 class Subject {15 public:16 Subject() { };17 virtual ~Subject() { };18 virtual void attach(Observer* ob) {19 this->_observers.push_back(ob);20 }21 void detach(Observer* ob) {22 this->_observers.remove(ob);23 }24 25 void notify(){26 for(auto ob : _observers){27 ob->update(this);28 }29 }30 private:31 std::list<Observer*> _observers;32 };
面试:C++观察者模式实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。