#includeusing namespace std;class action{public: action(){} ~action(){} void forward(){cout<<"forward"< forward();} void unexecute(){act->backward();}private: action *act;};class Switch{public: Switch():cmd(new buttoncommand){} ~Switch(){} void open(){cmd->execute();} void close(){cmd->unexecute();}private: command *cmd;};int main(){ Switch *sw=new Switch; sw->open(); sw->close(); delete sw; system("pause"); return 0;}