Template Method (C++实现)

// Template Method.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

using namespace std;

class AbstractClass
{
public:
 AbstractClass(){}
 virtual ~AbstractClass(){}

 // 这个函数中定义了算法的轮廓
 void TemplateMethod()
 {
  PrimitiveOperation1();
     PrimitiveOperation2();
 }

protected:
 // 纯虚函数,由派生类实现之
 virtual void PrimitiveOperation1() = 0;
 virtual void PrimitiveOperation2() = 0;
};

// 继承自AbstractClass,实现算法
class ConcreateClass: public AbstractClass
{
public:
 ConcreateClass(){}
 virtual ~ConcreateClass(){}

protected:
 virtual void PrimitiveOperation1()
 {
  cout << "PrimitiveOperation1 by ConcreateClass/n";
 }
 virtual void PrimitiveOperation2()
 {
  cout << "PrimitiveOperation2 by ConcreateClass/n";
 }
};

 

int _tmain(int argc, _TCHAR* argv[])
{
 AbstractClass* pConcreateClass = new ConcreateClass;
 pConcreateClass->TemplateMethod();

 delete pConcreateClass;

 return 0;
}

 

posted on 2011-06-02 23:43  IT@民工  阅读(146)  评论(0编辑  收藏  举报

导航