#pragma once
// 抽象基类,定义 法的轮廓
class AbstractClass
{
public:
AbstractClass(){}
virtual ~AbstractClass(){}
// 这个函数中定义了 法的轮廓
void TemplateMethod();
protected:
// 纯虚函数,由派生类实现之
virtual void PrimitiveOperation1() = 0;
virtual void PrimitiveOperation2() = 0;
};
// 继承自AbstractClass,实现 法
class ConcreateClass : public AbstractClass
{
public:
ConcreateClass(){}
virtual ~ConcreateClass(){}
protected:
virtual void PrimitiveOperation1();
virtual void PrimitiveOperation2();
};
#include "StdAfx.h"
#include "template_method_impl.h"
#include
void AbstractClass::TemplateMethod()
{
PrimitiveOperation1();
PrimitiveOperation2();
}
void ConcreateClass::PrimitiveOperation1()
{
std::cout
1659628745
查看更多评论