#include <iostream>
using namespace std;
class makeDrink{
public:
virtual void step1() = 0;
virtual void step2() = 0;
virtual void step3() = 0;
virtual void step4() = 0;
void make(){
step1();
step2();
step3();
step4();
}
};
class makeCoffee: public makeDrink{
public:
void step1(){
cout << "boil water" << endl;
}
void step2(){
cout << "put in couple" << endl;
}
void step3(){
cout << "boil coffee" << endl;
}
void step4(){
cout << "put some milk" << endl;
}
};
class makeTea: public makeDrink{
public:
void step1(){
cout << "boil water" << endl;
}
void step2(){
cout << "put in couple" << endl;
}
void step3(){
cout << "boil tea" << endl;
}
void step4(){
cout << "put something" << endl;
}
};
void doWork(makeDrink& domake){
domake.make();
}
int main(){
makeTea tea;
makeCoffee coffee;
doWork(tea);
doWork(coffee);
system("pause");
return 0;
}