#include<iostream>
using namespace std;
class addrink
{
public:
virtual void getwater() = 0;
virtual void boil() = 0;
virtual void putcup() = 0;
virtual void add() = 0;
void makedrink()
{
getwater() ;
boil() ;
putcup();
add();
}
};
class coffee :public addrink
{
public:
void getwater()
{
cout << "加入水" << endl;
}
void boil()
{
cout << "烧水" << endl;
}
void putcup()
{
cout << "倒入杯中" << endl;
}
void add()
{
cout << "加入蜂蜜和牛奶" << endl;
}
};//制作咖啡
class tea :public addrink
{
public:
void getwater()
{
cout << "加入水" << endl;
}
void boil()
{
cout << "烧水" << endl;
}
void putcup()
{
cout << "倒入杯中" << endl;
}
void add()
{
cout << "加入枸杞" << endl;
}
};//制作茶
void dowork(addrink* abs)//addrink *abs=new coffee
{
abs->makedrink();
delete abs;//释放
}
void test()
{
dowork(new coffee);
cout << "------------" << endl;
dowork(new tea);
}
int main()
{
test();
return 0;
}
运用多态来制造饮品
本文展示了C++中的类和继承如何实现多态,通过`addrink`基类和`coffee`、`tea`派生类,分别定义了制作咖啡和茶的过程,以及`dowork`函数演示了对象的使用和内存管理。
摘要由CSDN通过智能技术生成