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