设计模式--装饰模式

    技术2022-07-11  101

    动态的为某个对象增加额外的功能

    #include <iostream> using namespace std; class Car { public: virtual void showFunc() = 0; virtual ~Car() { } }; class smallCar :public Car { public: void showFunc() { cout << "我能跑" << endl; } }; class flyCar : public Car { public: flyCar(Car *car) { _car = car; } void fly() { cout << "我还能飞" << endl; } void showFunc() { _car->showFunc(); this->fly(); } private: Car *_car = nullptr; }; int main() { Car *myCar = new smallCar; myCar->showFunc(); Car *flycar = new flyCar(myCar); flycar->showFunc(); delete flycar; delete myCar; return 0; }
    Processed: 0.022, SQL: 9