在基类中定义一套算法框架,子类只能更改特定的实现细节。
代码示例:
class AbstractClass
{
public:
void templateMethod()
{
function1();
function2();
}
protected:
virtual void function1()
{
cout << "invoke the function1 of AbstractClass" << endl;
}
virtual void function2()
{
cout << "invoke the function2 of AbstractClass" << endl;
}
};
class SubClass1 : public AbstractClass
{
protected:
virtual void function1()
{
cout << "invoke the function1 of SubClass1" << endl;
}
};