代码实现:

// chainResbonsibility.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <string>
#include <iostream>
using namespace std; class Manager
{
protected:
Manager *m_manager;
string m_name;
public:
Manager(Manager* manager,string name):m_manager(manager),m_name(name){}
virtual void DealWithRequest(string name, int num) {}
}; class CommonManager : public Manager
{
public:
CommonManager(Manager* manager,string name):Manager(manager,name){}
void DealWithRequest(string name,int num)
{
if(num < )
{
cout << "经理" <<m_name << "批准" << name << "加薪" << num << "元" <<endl;
}
else
{
cout << "经理" << m_name << "无法处理,交由总监处理" <<endl;
m_manager->DealWithRequest(name,num);
}
}
}; class Majordomo:public Manager
{
public:
Majordomo(Manager *manager,string name):Manager(manager,name){}
virtual void DealWithRequest(string name,int num)
{
if(num < )
{
cout << "总监" <<m_name << "批准" << name << "加薪" << num << "元" <<endl;
}
else
{
cout << "总监" << m_name << "无法处理,交由总经理处理" <<endl;
m_manager->DealWithRequest(name,num);
}
}
}; class GeneralManager : public Manager
{
public:
GeneralManager(Manager *manager,string name):Manager(manager,name){}
void DealWithRequest(string name,int num)
{
cout << "总经理" <<m_name << "批准" << name << "加薪" << num << "元" <<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Manager *general = new GeneralManager(NULL,"a");
Manager *majordomo = new Majordomo(general,"b");
Manager *common = new CommonManager(majordomo,"c");
common->DealWithRequest("d",);
common->DealWithRequest("d",);
common->DealWithRequest("d",);
system("pause");
return ;
}

最新文章

  1. gitHub使用入门和github for windows的安装教程
  2. quartz CronExpression表达式
  3. jQuery的案例及必知重要的jQuery选择器
  4. 关于EF6的记录Sql语句 与 EntityFramework.Extend 的诟病
  5. java,H5微信蓝牙设备开发教程申请设备和添加设备(2)
  6. 基于python编写的天气抓取程序
  7. Python+selenium自动化脚本编辑过程中遇到的问题和小技巧
  8. 【WP 8.1开发】上下文菜单
  9. 有关segue的简介
  10. 变形--扭曲 skew()
  11. ExtJs之addManagedListener
  12. spring事务传播机制实例讲解
  13. HashMap多线程死循环问题
  14. hive第二篇----hive中partition如何使用
  15. java游戏开发杂谈 - 界面刷新、坐标系
  16. MAVEN项目不扫描mybatis的mapper.xml问题
  17. 给网站配置免费的HTTS证书
  18. web前端知识大纲:系列一 js篇
  19. 关于setInterval的坑
  20. #个人博客作业Week1——浏览教材后提出的5个问题

热门文章

  1. mysql float 浮点型
  2. mysql 数据操作 单表查询 where约束 is null in
  3. TCP协议通讯工作原理
  4. controller中两个方法之间共享一个变量LinkedHashMap
  5. 第六章并发编程,异步执行框架executor
  6. Spring Boot+CXF搭建WebService
  7. HDU1556:Color the ball(简单的线段树区域更新)
  8. 文件下载—SSM框架文件下载
  9. SQLServer cast()函数
  10. 图像处理(二十一)基于数据驱动的人脸卡通动画生成-Siggraph Asia 2014