考虑virtual函数以外的其它选择

详情见《Effective C++》item35

1.使用non-virtual interface(NVI)手法,这是Template Method设计模式的一种特殊形式。

它以public non-virtual成员函数包裹较低访问性(private 或 protected)的virtual函数。

2.strategy设计模式

a.将virtual 函数替换为“函数指针成员变量”

b.以tr1::function成员变量替换virtual函数,因而允许使用任何可调用物搭配一个兼容于需求的签名式。

c.将继承体系内virtual函数替换为另一个继承体系中的virtual函数。