设计模式 模板模式
如果有一个流程如下
step1();
step2();
step3();
step4();
step5();
其中step3() step5()是需要用户自己编写使用
其他步骤是固定的
那么可以写成

// 11111.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
#include <memory> using namespace std; class Lib {
public:
void libstep1() {
std::cout << "step1" << std::endl;
}
void libstep2() {
std::cout << "step2" << std::endl;
}
void libstep4() {
std::cout << "step4" << std::endl;
} virtual void userstep3() = 0;
virtual void userstep5() = 0; void run() {
libstep1();
libstep2();
userstep3();
libstep4();
userstep5();
}
    virtual ~Lib() {};
}; class User :public Lib {
public:
void userstep3() {
std::cout << "step3" << std::endl;
}
void userstep5() {
std::cout << "step5" << std::endl;
}
}; int main()
{
User u;
u.run(); Lib* l = new User();
l->run();
delete l; shared_ptr<Lib> sl(new User());
sl->run(); return 0;
}

  

最新文章

  1. ASP.NET MVC 5 Web编程2 -- URL映射(路由原理)
  2. git warning: LF will be replaced by CRLF in...
  3. codeforces A. Puzzles 解题报告
  4. recyclview多条目布局
  5. SIlverlight外包公司【技术展望】— Silverlight5.1.2最新版本发布,Silverlight 的更新从未停止。
  6. Mac下无法拷贝文件到移动硬盘
  7. 【Oracle 函数索引】一次数据库的优化过程
  8. Uva592 Island of Logic
  9. Windows Phone中用到的类名及对应的命名控件及引用
  10. php远程读取json的方法
  11. mac 上搭建SVN
  12. @(报错)could not find the main class, Program will exit(已解决)
  13. windows查看端口占用命令
  14. CenterOS 7 基础命令学习
  15. Web、WCF和WS通过Nginx共享80端口
  16. 过滤器Filter与监听器Listener
  17. Burpsuite Sqlmap Nmap入门总结
  18. CF603E Pastoral Oddities
  19. vue,vux判断字符串是否是undefined
  20. FCC JS基础算法题(6):Truncate a string(截断字符串)

热门文章

  1. C++Primer第五版——习题答案详解(九)
  2. 删除文件夹下各级子目录中的.svn文件
  3. sas 获取数据集观测数量
  4. C#操作wps、excel
  5. 杂谈3.py
  6. Swift 通过运行时获取属性名列表
  7. kudu导入文件(基于impala)
  8. 同步对象(同步条件Event)
  9. background url base64
  10. BOM (字节顺序标记)