[effectiv c++]条款39:明智而审慎地使用private继承

来源:互联网 发布:网络管理培训 编辑:程序博客网 时间:2024/05/29 17:25
class Timer {public:    explicit Timer(int tickFrequency);    virtual void onTick() const;    ……};class Widget : private Timer {private:    virtual void onTick() const;    ……};

private继承代替方法: 继承加复合

class Widget {private:    class WidgetTimer: public Timer {    public:        virtual void onTick() const;        ……    }    WidgetTimer timer;    ……}

优点:

  • 防止Widget重新定义onTick函数
  • 若Widget内含一个WidgetTimer指针而不是对象,解耦。
阅读全文
0 0