C++模式(三)模板方法模式

来源:互联网 发布:js.users.51.la是什么 编辑:程序博客网 时间:2024/05/22 12:51

代码示例如下:

#include <iostream>using namespace std;/* 抽象类 */class AbstractClass{public:    ~AbstractClass()    {    }    AbstractClass()    {    }    void TemplateMethod()    {        this->operator1();        this->operator2();    }protected:    virtual void operator1() = 0;    virtual void operator2() = 0;};class ConcreteClass1:public AbstractClass{public:    ConcreteClass1()    {    }    ~ConcreteClass1();protected:    void operator1()    {        cout << "class1 operator1" << endl;    }    void operator2()    {        cout << "class1 operator2" << endl;    }};class ConcreteClass2:public AbstractClass{public:    ConcreteClass2()    {    }    ~ConcreteClass2();protected:    void operator1()    {        cout << "class2 operator1" << endl;    }    void operator2()    {        cout << "class2 operator2" << endl;    }};int main( void ){    AbstractClass* p1 = new ConcreteClass1();    AbstractClass* p2 = new ConcreteClass2();    p1->TemplateMethod();    p2->TemplateMethod();    return 0;}


0 0
原创粉丝点击