#include <iostream>
using namespace std; class AbstractClass {
public:
void TemplateMethod() {
cout << "PrimitiveOperation1() Start" << endl;
PrimitiveOperation1();
cout << "PrimitiveOperation1() End" << endl; cout << "PrimitiveOperation2() Start" << endl;
PrimitiveOperation2();
cout << "PrimitiveOperation2() End" << endl;
}
protected:
virtual void PrimitiveOperation1() {
cout << "AbstractClass Operation1" << endl;
}
virtual void PrimitiveOperation2() {
cout << "AbstractClass Operation2" << endl;
}
}; class ConcreteClass : public AbstractClass {
protected:
virtual void PrimitiveOperation1() {
cout << "ConcreteClass Operation1" << endl;
}
virtual void PrimitiveOperation2() {
cout << "ConcreteClass Operation2" << endl;
}
}; int main() {
AbstractClass * pAbstractClass = new ConcreteClass();
pAbstractClass->TemplateMethod();
if (pAbstractClass) delete pAbstractClass;
return 0;
}

最新文章

  1. MongoDB Windows环境安装及配置
  2. [转]Java Web基础——Action+Service +Dao三层的功能划分
  3. POJ 2528 Mayor&#39;s posters(线段树/区间更新 离散化)
  4. Objective-C:Foundation框架-常用类-NSMutableDictionary
  5. hive 面试题 转载
  6. ASP.NET中常用重置数据的方法
  7. 继刚接触play framework后,一些心得
  8. 关于vi不正常退出产生的swp文件
  9. Java Enum使用演示样品枚举
  10. spring slf4j log4j maven
  11. BOM和DOM的区别
  12. str() vs repr() in Python
  13. MyBatis:自定义Mapper
  14. day 13 装饰器
  15. java书籍
  16. Database学习 - mysql数据类型
  17. 5210: 最大连通子块和 动态DP 树链剖分
  18. 【python017--函数对象1】
  19. Oracle数据库中的数据出错的解决办法
  20. 微信小程序 - cb回调(typeof cb == &quot;function&quot; &amp;&amp; cb(obj);)

热门文章

  1. 20199326《Linux内核原理与分析》第十二周作业
  2. JDK13的六大重要新特性
  3. WMware中Ubuntu系统安装VMware tools
  4. CSS开发技巧(一):button样式设置
  5. Semaphores
  6. 图论--最短路--SPFA模板(能过题,真没错的模板)
  7. python(MD5 单向加密)
  8. python(If 判断)
  9. 题目分享G 二代目
  10. SpringBoot返回JSON日期格式问题