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指针而不是对象,解耦。