42 lines
697 B
C++
42 lines
697 B
C++
#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 |