案例描述:制作饮品的大致流程:煮水-冲泡-倒入杯中-加入辅料
利用多态技术实现本案例,利用抽象制作饮品基类,提供子类制作咖啡和茶叶。
代码:
class AbstractDrinking
{
public:
//煮水
virtual void Boil() = 0;
//冲泡
virtual void Brew() = 0;
//倒入杯水
virtual void PourInCup() = 0;
//加入佐料
virtual void PutSomething() = 0;
void makedrink()
{
Boil();
Brew();
PourInCup();
PutSomething();
}
};
class Coffee :public AbstractDrinking
{
public:
void Boil()
{
cout << "煮泉水" << endl;
}
void Brew()
{
cout << "冲泡咖啡" << endl;
}
void PourInCup()
{
cout << "倒入杯子" << endl;
}
void PutSomething()
{
cout << "加入糖和牛奶" << endl;
}
};
class Tea :public AbstractDrinking
{
public:
void Boil()
{
cout << "煮泉水" << endl;
}
void Brew()
{
cout << "冲泡茶页" << endl;
}
void PourInCup()
{
cout << "倒入杯子" << endl;
}
void PutSomething()
{
cout << "加入红枣" << endl;
}
};
void dowork(AbstractDrinking& abc)
{
abc.makedrink();
//delete abc;
}
int main()
{
Coffee c;
dowork(c);
system("pause");
return 0;
}
代码实现: