[cpp]#include <iostream> #include <string> #include <vector> using namespace std; class CommandBase { public: virtual void run()=0; private: }; class Command1:public CommandBase { public: Command1(string strName):m_strName(strName){}; void run() { cout<<m_strName<<endl; } private: string m_strName; }; class Command2:public CommandBase { public: Command2(string strName):m_strName(strName){}; void run() { cout<<m_strName<<endl; } private: string m_strName; }; class Command3:public CommandBase { public: Command3(string strName):m_strName(strName){}; void run() { cout<<m_strName<<endl; } private: string m_strName; }; class Exclude { public: void add(CommandBase& Command) { m_vetorCommand.push_back(&Command); } void run() { vector <CommandBase*>::iterator Itr = m_vetorCommand.begin(); while(Itr != m_vetorCommand.end()) { (*Itr++)->run(); } } private: vector <CommandBase*> m_vetorCommand; static Exclude m_cExclude; }; int main() { Command1 cCommand1("cmd1"); Command2 cCommand2("cmd2"); Command3 cCommand3("cmd3"); Exclude cExclude; cExclude.add(cCommand1); cExclude.add(cCommand2); cExclude.add(cCommand3); cExclude.run(); while(1); }
·2024年9月目录 ·2024年8月目录 ·2024年7月目录 ·2024年6月目录 ·2024年5月目录 ·2024年4月目录 ·2024年3月目录 ·2024年2月目录 ·2024年1月目录 ·2023年12月目录 ·2023年11月目录 ·2023年10月目录 ·2023年9月目录 ·2023年8月目录