#include <iostream>
using namespace std;
class AbstractDrinking
{
public:
//煮水
virtual void boilWater() = 0;
//冲泡
virtual void brewing() = 0;
//倒入杯子中
virtual void PourIntoUp() = 0;
//加入辅料
virtual void addSomeThing() = 0;
void doDrinking()
{
boilWater();
brewing();
PourIntoUp();
addSomeThing();
}
};
class Coffee:public AbstractDrinking
{
public:
//煮水
void boilWater(){
cout<<"煮矿泉水"<<endl;
};
//冲泡
void brewing(){
cout<<"冲泡咖啡"<<endl;
};
//倒入杯子中
void PourIntoUp(){
cout<<"倒入大杯子中"<<endl;
};
//加入辅料
void addSomeThing(){
cout<<"加入糖与牛奶"<<endl;
};
};
class Tea:public AbstractDrinking
{
public:
//煮水
void boilWater(){
cout<<"煮农夫山泉"<<endl;
};
//冲泡
void brewing(){
cout<<"冲泡茶叶"<<endl;
};
//倒入杯子中
void PourIntoUp(){
cout<<"倒入小杯子中"<<endl;
};
//加入辅料
void addSomeThing(){
cout<<"加入枸杞与菊花"<<endl;
};
};
void doWorking(AbstractDrinking *abs)//AbstractDrinking *abs = new Coffe;
{
abs->doDrinking();
delete abs;
}
void test01()
{
doWorking(new Coffee);
cout<<"------------------"<<endl;
doWorking(new Tea);
}
int main()
{
test01();
return 0;
}
C++ 多态实例一
于 2022-05-04 17:55:13 首次发布