制作饮品的过程大致为:煮水、冲泡、倒入杯中、加入调料。
#include<iostream> using namespace std; class AbstractDrink { public: virtual void Boil() = 0; virtual void Brew() = 0; virtual void PourInCup() = 0; virtual void PutSomething() = 0; void makeDrink() { Boil(); Brew(); PourInCup(); PutSomething(); } }; class Milk:public AbstractDrink { virtual void Boil() { cout << "正在煮水" << endl; } virtual void Brew() { cout << "冲泡牛奶" << endl; } virtual void PourInCup() { cout << "倒入杯中" << endl; } virtual void PutSomething() { cout << "加入麦片" << endl; } }; class Coffe :public AbstractDrink { virtual void Boil() { cout << "正在煮水" << endl; } virtual void Brew() { cout << "冲泡咖啡" << endl; } virtual void PourInCup() { cout << "倒入杯中" << endl; } virtual void PutSomething() { cout << "加入牛奶" << endl; } }; void doWork(AbstractDrink * abs) { abs->makeDrink(); delete abs; } void test() { doWork(new Milk); cout << "---------------" << endl; doWork(new Coffe); } int main() { test(); system("pause"); return 0; }
输出: