最初版本
#pragma onceclass Library
{
public:void Step1(){}void Step3(){}void Step5(){}
};class Appliacation
{
public:void Step2(){}void Step4(){}
};int main()
{Library lib;Appliacation app;lib.Step1();app.Step2();lib.Step3();app.Step4();lib.Step5();
}
最终版本
#pragma onceclass Library
{
public:void run(){Step1();Step2();Step3();Step4();Step5();}
private:void Step1(){}void Step3(){}void Step5(){}virtual ~Library(){}
protected:virtual void Step2() = 0;virtual void Step4() = 0;
};class Appliacation : public Library
{
public:virtual void Step2(){}virtual void Step4(){}
};int main()
{Library* app = new Appliacation();app->run();}