同步操作将从 hqgboy/design-patterns-cpp 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/** C++ Design Patterns: Command* Author: Jakub Vojvoda [github.com/JakubVojvoda]* 2016** Source code is licensed under MIT License* (for more details see LICENSE)**/#include <iostream>/** Receiver* knows how to perform the operations associated* with carrying out a request*/class Receiver{public:void action(){std::cout << "Receiver: execute action" << std::endl;}// ...};/** Command* declares an interface for all commands*/class Command{public:virtual ~Command() {}virtual void execute() = 0;// ...protected:Command() {}};/** Concrete Command* implements execute by invoking the corresponding* operation(s) on Receiver*/class ConcreteCommand : public Command{public:ConcreteCommand( Receiver *r ) : receiver( r ) {}~ConcreteCommand(){if ( receiver ){delete receiver;}}void execute(){receiver->action();}// ...private:Receiver *receiver;// ...};/** Invoker* asks the command to carry out the request*/class Invoker{public:void set( Command *c ){command = c;}void confirm(){if ( command ){command->execute();}}// ...private:Command *command;// ...};int main(){ConcreteCommand command( new Receiver() );Invoker invoker;invoker.set( &command );invoker.confirm();return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。