1、UML模型
2、修饰模型作用
动态的为一个对象添加一个额外的职责,就增强类功能来说,比创建子类灵活;
3、代码demo
#include "pch.h"
#include <iostream>
using namespace std;
class Car
{
public:
virtual void show() = 0;
};
class RunCar :public Car
{
public:
virtual void show()
{
cout << "可以跑" << endl;
}
};
class SwimCar : public Car
{
public:
SwimCar(Car *car)
{
m_car = car;
}
void swim()
{
cout << "可游泳" << endl;
}
virtual void show()
{
m_car->show();
swim();
}
protected:
Car *m_car;
};
class FlyCar : public Car
{
public:
FlyCar(Car *car)
{
m_car = car;
}
void fly()
{
cout << "可飞行" << endl;
}
virtual void show()
{
m_car->show();
fly();
}
protected:
Car *m_car;
};
int main()
{
Car *car = NULL;
car = new RunCar;
car->show();
SwimCar *swimCar = new SwimCar(car);
swimCar->show();
FlyCar *flyCar = new FlyCar(car);
flyCar->show();
delete flyCar;
delete swimCar;
delete car;
std::cout << "Hello World!\n";
return 0;
}