/** * template.h * Implemented by Blueprint Technologies, Inc. */ #ifndef _template_h #define _template_h /** * Defines abstract primitive operations that concrete * subclasses define to implement steps of an algorithm. */ class AbstractClass { public: void templateMethod() { primitiveOperation1(); primitiveOperation2(); primitiveOperation3(); }; virtual void primitiveOperation1() = 0; virtual void primitiveOperation2() = 0; virtual void primitiveOperation3() = 0; }; /** * Implements the primitive operations to carry out subclass- * specific steps of the algorithm. */ class ConcreteClass: public AbstractClass { public: virtual void primitiveOperation1() { }; virtual void primitiveOperation2() { }; virtual void primitiveOperation3() { }; }; #endif