command c++

来源:互联网 发布:sas高校数据分析大赛 编辑:程序博客网 时间:2024/06/06 03:43
#include<stdio.h>#include<string.h>#include<list>#include<vector>#include<iostream>using namespace std;class Barbecuer{public:int bake_mutton(){puts("chef is cooking mutton");};int bake_chicken(){puts("chef is cooking chicken");};int bake_beef(){puts("chef is cooking beef");};};class command{public:Barbecuer baker;virtual int do_cook(){puts("farther");};};class mutton_command : public command{public:int do_cook(){baker.bake_mutton();};};class chicken_command : public command{public:int do_cook(){baker.bake_chicken();};};class beef_command : public command{public:int do_cook(){baker.bake_beef();};};class Waiter{vector<command*> c_vec;//list.pushback();public:void setOrder(command *c){c_vec.push_back(c);};void cancelOrder(){c_vec.pop_back();};void do_notify(){vector<command*>::iterator it;it = c_vec.begin();cout<<"list size is "<<c_vec.size()<<endl;for(;it!=c_vec.end();it++){(*it)->do_cook();}};};
#include"command.h"int main(){Waiter w;mutton_command *m_c = new mutton_command();chicken_command *c_c = new chicken_command();w.setOrder(m_c);w.setOrder(c_c);w.do_notify();}