勿在浮沙筑高台--P12 虚函数和多态

2021-07-21  本文已影响0人  Catherin_gao

总:虚函数

类的继承是继承的调用权

一. 使用虚函数进行继承

main(){
  CMyDoc myDoc;
   ...
   myDoc.OnFileOpen();
}

二. 委托 Delegation + 继承 Inheritance

设计模式:Observer

class Observer{
  public:
    virtual void update(Subject* sub, int value)=0;
};

class Subject{
   int m_value;
   vector<Observer*> m_viewers;
public:
  void attach(Observer* obs){
     m_views.push_back(obs);
  }
  void set_value(int value)
  {
     m_value = value;
     notify();
  }
  void notify(){
       for(int i=0;i<m_views.size();++i)
          m_views[i]->update(this, m_value);
  }
};

设计模式:Composite 混合

上一篇 下一篇

猜你喜欢

热点阅读