#ifndef MT1Q7_H #define MT1Q7_H /////////////////////////////////////////////////////////////// // MT1Q7.h - Operation on Elements // // // // Jim Fawcett, CSE687 - Object Oriented Design, Spring 2012 // /////////////////////////////////////////////////////////////// #include #include template struct IFunctor { virtual void operator()(T& t) = 0; }; template class displayFunctor : public IFunctor { public: void operator()(T& t) { std::cout << 2*t << " "; } }; template class Container : public std::list { public: void traverse(IFunctor& funct) { iterator iter = begin(); while(iter != end()) funct(*iter++); } }; #endif