#ifndef __DEMO_H__ #define __DEMO_H__ // 抽象类(基类) class AbstractClass { public: virtual ~AbstractClass(){} // 模板方法,定义一个算法的框架流程 void templateMethod(){ // do something method1(); method2(); method3(); } // 基本方法——公共方法 void mehtod1(){ // do something } // 基本方法2 virtual void method2() = 0; // 基本方法3——默认实现 void mehtod3(){ // do something } }; // 具体类(派生类) class ConcreteClass :public AbstractClass { public: // 实现基本方法2 void method2(){ // do something } // 重定义基本方法3,覆盖基类的方法3 void method3(){ // do something } }; #endif