include “../purge.h” using nam

Автор admin Пятница, 19 июня 2009 11:32

include “../purge.h” using namespace std: enum Answer { NO, YES }: class GimmeStrategy { Цепочка ответственности 495 public: virtual Answer canlHaveO = 0; virtual -GimmeStrategyО {} }: class AskMom : public GimmeStrategy { public: Answer canlHaveO { cout « “Mooom? Can I have this?” « endl; return NO; } }: class AskDad : public GimmeStrategy { public: Answer canlHaveO { cout « “Dad. I really need this!” « endl: return NO; } }: class AskGrandpa : public GimmeStrategy { public: Answer canlHaveO { cout « “Grandpa, is it my birthday yet?” « endl; return NO: } }: class AskGrandma : public GimmeStrategy { public: Answer canlHaveO { cout « “Grandma. I really love you!” « endl: return YES: } }: class Gimme : public GimmeStrategy { vector chain; public: GimmeO { chain.push_back(new AskMomO); chain.push_back(new AskDadO): chain.push_back(new AskGrandpa()); chain.push_back(new AskGrandma()); } Answer canlHaveO { vector::iterator it = chain.begin(): whiledt != chain.endO) if((*it++)->canIHaveO == YES) return YES; // Все попытки оказались безуспешными… cout « “Whiiiiinnne!” « endl:


Комментарии закрыты.