zoukankan      html  css  js  c++  java
  • c++多态案例之制作饮品

    制作饮品的过程大致为:煮水、冲泡、倒入杯中、加入调料。

    #include<iostream>
    using namespace std;
    
    class AbstractDrink {
    public:
        virtual void Boil() = 0;
        virtual void Brew() = 0;
        virtual void PourInCup() = 0;
        virtual void PutSomething() = 0;
        void makeDrink() {
            Boil();
            Brew();
            PourInCup();
            PutSomething();
        }
    };
    class Milk:public AbstractDrink {
        virtual void Boil() {
            cout << "正在煮水" << endl;
        }
        virtual void Brew() {
            cout << "冲泡牛奶" << endl;
        }
        virtual void PourInCup() {
            cout << "倒入杯中" << endl;
        }
        virtual void PutSomething() {
            cout << "加入麦片" << endl;
        }
    };
    class Coffe :public AbstractDrink {
        virtual void Boil() {
            cout << "正在煮水" << endl;
        }
        virtual void Brew() {
            cout << "冲泡咖啡" << endl;
        }
        virtual void PourInCup() {
            cout << "倒入杯中" << endl;
        }
        virtual void PutSomething() {
            cout << "加入牛奶" << endl;
        }
    };
    void doWork(AbstractDrink * abs) {
        abs->makeDrink();
        delete abs;
    }
    void test() {
        doWork(new Milk);
        cout << "---------------" << endl;
        doWork(new Coffe);
    }
    
    int main() {
        test();
        system("pause");
        return 0;
    }

    输出:

  • 相关阅读:
    PAT 1036 Boys vs Girls (25分) 比大小而已
    idea创建maven项目慢的原因以及解决方案
    git diff 理解
    git status 命令详解
    java注解
    单例模式
    io分类
    数据库设计的范式
    mysql约束
    mysql去重复关键字distinct的用法
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12102257.html
Copyright © 2011-2022 走看看