日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2_2 DecorateMode.cpp 装饰者模式

發(fā)布時(shí)間:2024/4/11 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2_2 DecorateMode.cpp 装饰者模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
// 定義:動(dòng)態(tài)的給一個(gè)對象添加額外的職責(zé) // // 模式舉例:有豐田和沃爾沃汽車,動(dòng)態(tài)的給這兩種汽車添加導(dǎo)航功能 // 自動(dòng)駕駛和語音控制功能 // // 模式特點(diǎn):Function類繼承自Car同時(shí)又擁有Car類型指針 // //#include<iostream> using namespace std;class Car { public:virtual void showInfo()=0; };class TOYOTA : public Car { public:virtual void showInfo(){cout <<"TOYOTA Car";} };class VOLVO : public Car { public:virtual void showInfo(){cout <<"VOLVO Car";} };//注意點(diǎn):此處重新showInfo,子類繼續(xù)重寫,但是子類的重寫調(diào)用父類的實(shí)現(xiàn) class Function : public Car { public:virtual void showInfo(){m_car->showInfo();}void decorate(Car * car){m_car = car;}private:Car * m_car; };class Navigator : public Function { public:virtual void showInfo(){cout << "增加導(dǎo)航功能-";Function::showInfo();} };class VoiceControl : public Function { public:virtual void showInfo(){cout << "增加語音控制功能-";Function::showInfo();} };class SelfDrive : public Function { public:virtual void showInfo(){cout << "增加自動(dòng)駕駛功能-";Function::showInfo();} };int main() {Car *pvolvoCar = new VOLVO();Function *pvoiceDecorate = new VoiceControl();pvoiceDecorate->decorate(pvolvoCar);Function *pautorunDecorate = new SelfDrive();pautorunDecorate->decorate(pvoiceDecorate);pautorunDecorate->showInfo();return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的2_2 DecorateMode.cpp 装饰者模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。