c++多型案例 製作飲品
阿新 • • 發佈:2022-04-10
案例描述:
製作飲品的大致流程為:煮水 - 沖泡 - 倒入杯中 - 加入輔料
利用多型技術實現本案例,提供抽象製作飲品基類,提供子類製作咖啡和茶葉
//抽象製作飲品 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; }