zoukankan      html  css  js  c++  java
  • 2021/11/23

    责任链
    #include <iostream> #include <vector> using namespace std; class relatives { public: relatives(){} virtual ~relatives(){} virtual bool request(int)=0; }; class Manage1 : public relatives { public: Manage1(){} virtual ~Manage1(){} bool request(int num) { if (num<10000) { cout<<num<<"元订单主任给批准"<<endl; return true; } else { cout<<num<<"元订单主任不给批准,找部门经理"<<endl; return false; } } }; class Manage2 : public relatives { public: Manage2(){} virtual ~Manage2(){} bool request(int num) { if (num<50000) { cout<<num<<"元订单部门经理给批准"<<endl; return true; } else { cout<<num<<"元订单部门经理不给批准,找副总经理"<<endl; return false; } } }; class Manage3 : public relatives { public: Manage3(){} virtual ~Manage3(){} bool request(int num) { if (num<100000) { cout<<num<<"元副总经理给批准"<<endl; return true; } else { cout<<num<<"元订单副总经理不给批准,找总经理"<<endl; return false; } } }; class Manage4 : public relatives { public: Manage4(){} virtual ~Manage4(){} bool request(int num) { if (num<200000) { cout<<num<<"元总经理给批准"<<endl; return true; } else { cout<<num<<"金额太大批不了"<<endl; return false; } } }; class buysomething { private: vector<relatives*> p_vbuy; public: buysomething() { p_vbuy.push_back(new Manage1); p_vbuy.push_back(new Manage2); p_vbuy.push_back(new Manage3); p_vbuy.push_back(new Manage4); } virtual ~buysomething() { p_vbuy.clear(); } void request(int num) { bool flag=false; for (vector<relatives*>::iterator it=p_vbuy.begin();it!=p_vbuy.end();it++) { flag=(*it)->request(num); if (flag==true) break; } } }; int main() { buysomething *buy=new buysomething; buy->request(260000); delete buy; system("pause"); return 0; }
  • 相关阅读:
    MFC单文档视图设置背景
    原来这就是命令行下的“学生信息管理系统”
    C语言中数组&取地址的问题
    《逐梦旅程-Windows游戏编程之从零开始》 勘误
    杭电ACM 1003 ( 动态规划法 水题)
    《编程之美》
    [蓝桥杯][2014年第五届真题]地宫取宝
    [蓝桥杯][2013年第四届真题]危险系数
    2142: 逛超市(zznuoj)
    2141:2333(zznuoj)
  • 原文地址:https://www.cnblogs.com/qiangini/p/15580438.html
Copyright © 2011-2022 走看看