考虑virtual函数以外的其他选择(Effective C++_35)

  • Post author:
  • Post category:其他


一、NVI手法实现模版方法模式

(1)NVI手法的基本思想


该设计是令客户通过public non-virtual成员函数间接调用private virtual函数,称为non-virtual interface(NVI)手法

,它是

模板方法设计模式的一个独特表示

;相当对virtual函数进行一层的包装,可以称为是virtual函数的外覆器(warpper).

注:模板方法设计模式,主要思想是基类提供抽象接口,具体细节让派生类实现,具体参考另一篇博客

http://blog.csdn.net/zhangchen1003/article/details/48445553

(2)具体实现

class Base{
public:
    void dosomething(){
        print();
    }
private:
    virtual void print()=0;
};

class D1:public



版权声明:本文为zhangchen1003原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。