您的位置:首页 > 编程语言 > C语言/C++

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

2015-11-10 20:31 597 查看
代码示例如下:

#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: