#include <iostream> #include <string> #include <vector> #include <fstream> using namespace std; class AbstractBase { public: virtual void Boil() = 0; virtual void Brew() = 0; virtual void PourInCup() = 0; virtual void PutSomething() = 0; void doDrink() { Boil(); Brew(); PourInCup(); PutSomething(); } }; class Coffe :public AbstractBase { public: virtual void Boil() { cout << "煮水" << endl; } virtual void Brew() { cout << "冲泡咖啡" << endl; } virtual void PourInCup() { cout << "倒入杯中" << endl; } virtual void PutSomething() { cout << "加入糖和牛奶" << endl; } }; class Tea :public AbstractBase { public: virtual void Boil() { cout << "煮水" << endl; } virtual void Brew() { cout << "冲泡茶叶" << endl; } virtual void PourInCup() { cout << "倒入杯中" << endl; } virtual void PutSomething() { cout << "加入枸杞" << endl; } }; void doWork(AbstractBase* a) { a->doDrink(); delete a; } void test01() { doWork(new Coffe); doWork(new Tea); } int main() { test01(); system("pause"); return 0; }
c++纯虚函数例子
最新推荐文章于 2022-04-29 20:39:17 发布
本文展示了如何使用C++的抽象基类(Abstract Base Class)来定义一个饮品制作流程,包括煮水、冲泡、倒入杯中和添加调料的步骤。具体实现中,创建了Coffe和Tea两个派生类,分别实现了各自特色的饮品制作过程。通过doWork函数,可以对不同类型的饮品进行统一的操作。
摘要由CSDN通过智能技术生成