Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / ооп / 18. Об'єктно-орієнтоване програмування, л.5.5 - 5.8.ppt
Скачиваний:
26
Добавлен:
30.05.2020
Размер:
3.38 Mб
Скачать

Що таке композиція?

Композиція (агрегація, включення) - простий механізм для створення нового класу шляхом об'єднання декількох об'єктів існуючих класів в єдине ціле

При агрегації між класами діє «відношення

приналежності»

В машини є кузов, колеса і двигун

У людини є голова, руки, ноги і тіло

В трикутника є вершини

Вкладені об'єкти зазвичай оголошуються закритими (private) усередині класу-агрегату

class CPoint

Крапк

{

public:

а

CPoint(double x, double y);

 

double GetX()const;

 

double GetY()const;

Трикутник

private:

double m_x, m_y;

 

};

 

class CTriangle

{

public:

CTriangle(CPoint const& p1, CPoint const& p2, CPoint const& p3);

CPoint GetVertex(unsigned index)const; private:

CPoint m_p1, m_p2, m_p3; };

// Колесо

// Двигун

class CWheel

class CEngine

{

{

...

...

};

};

// Кузов

// Автомобіль

class CBody

class CAutomobile

{

{

...

public:

};

...

 

private:

 

CBody m_body;

 

CEngine m_engine;

 

CWheel m_wheels[4];

 

};

// Слайд class CSlide

{

...

};

// Презентація class CPresentation

{

public:

CSlides & GetSlides(); CSlides const&

GetSlides()const;

private:

CSlides m_slides; };

// Слайди class CSlides

{

public:

CSlide & operator[](unsigned index);

CSlide const & operator[] (unsigned index)const;

...

private:

std::vector<CSlide> m_items; };

Що таке

спадкоємство?

Найважливіший механізм ООП, що дозволяє описати новий клас що вже існує

При спадкоємстві властивості і функціональність батьківського класу

успадковуються новим класом

Клас-спадкоємець має доступ до прилюдних і захищених методів і полів класу батьківського класу

Клас-спадкоємець може додавати свої дані і методи, а також перевизначати методи базового класу

Термінологія

Батьківський або базовий клас (клас-батько) - клас, промовець як основа при спадкоємстві

Клас-нащадок (дочірній клас, клас- спадкоємець) - клас, утворений в результаті спадкоємства від батьківського класу

Ієрархія спадкоємства - стосунки між батьківським класом і його нащадками

Інтерфейс класу - сукупність прилюдних методів класу, доступна для використання поза класом

У інтерфейсній частині дані зазвичай не розміщують

Реалізація класу - сукупність приватних методів і даних класу

Тварина

Батьківський

клас

 

Риба

Птиця

Класи-нащадки

Орел

Голуб

Класи-нащадки

Варіанти

спадкоємства

За типом спадкоємства

Прилюдне (відкрите) спадкоємствоПриватне (закрите) спадкоємствоЗахищене спадкоємство

По кількості базових класів

Одиночне спадкоємство (один базовий клас)

Множинне спадкоємство (два і більш базових класів)