// 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;
}

 

相关文章:

  • 2021-09-14
  • 2022-01-25
  • 2021-09-16
  • 2022-12-23
  • 2022-12-23
  • 2022-01-10
  • 2021-07-24
  • 2018-04-17
猜你喜欢
  • 2021-05-31
  • 2021-05-17
  • 2021-12-21
相关资源
相似解决方案