1.
is-a - наследование
class Car : public Vehicle {
// автомобиль является транспортом
};
2.
has-a - отношение типа "композиция"
class Car {
Engine v8; // автомобиль имеет (содержит) двигатель
};
3.
uses-a - отношение типа "агрегация"
class Driver {
Car* myCar; // водитель использует автомобиль
};
4.
is-like-aclass Square : public Figure;
class Rectangle : public Figure;
// квадрат и прямоугольник похожи по свойствам, но это разные фигуры
5.
is-implemented-as-aclass Engine { // абстракция
public:
virtual void start() = 0;
protected:
float power;
};
class V8 : public Engine { // реализация
virtual void start() {
// wroom wroom
}
};
// Двигатель ДВС реализован как 8-ми цилиндровый двигатель V-конфигурации