黑马程序员C++教程从0到1入门编程56类与对象--纯虚函数和抽象类
学习一下多态案例:制作饮品
利用上一节学到的纯虚函数
用多态的方法在子类中编写具体实现函数
例子
#include <iostream>
#include<string>
using namespace std;
#if 1
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:
virtual void boil()
{
cout << "煮水" << endl;
}
//冲泡
virtual void brew()
{
cout << "冲泡咖啡" << endl;
}
//倒入杯中
virtual void pourincup()
{
cout << "倒入杯中" << endl;
}
//加入辅料
virtual void putsomething()
{
cout << "加入柠檬" << endl;
}
};
//煮茶
class tea :public abstractdrinking
{
public:
virtual void boil()
{
cout << "煮矿泉水水" << endl;
}
//冲泡
virtual void brew()
{
cout << "冲泡茶叶" << endl;
}
//倒入杯中
virtual void pourincup()
{
cout << "倒入茶杯中" << endl;
}
//加入辅料
virtual void putsomething()
{
cout << "加入盐" << endl;
}
};
//
void dowork(abstractdrinking *abc)//abstractdrinking *abc = new coffee
{
abc->makedrink();
delete abc;//释放
}
void test01()
{
//制作咖啡
dowork(new coffee);
//制作茶
dowork(new tea);
}
#endif // 1
int main()
{
test01();
///test02();
system("pause");
return 0;
}