1. 程式人生 > 其它 >c++多型案例 製作飲品

c++多型案例 製作飲品

案例描述:

製作飲品的大致流程為:煮水 - 沖泡 - 倒入杯中 - 加入輔料

利用多型技術實現本案例,提供抽象製作飲品基類,提供子類製作咖啡和茶葉

//抽象製作飲品
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* drink) { drink->MakeDrink(); delete drink; } void test01() { DoWork(new Coffee); cout << "--------------" << endl; DoWork(new Tea); } int main() { test01(); system("pause"); return 0; }