Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_-_Praktichne_zanyattya_16.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
413.7 Кб
Скачать

Множинне наслідування

Клас може бути похідним не лише від одного базового класу. А й від кількох.

Створення класу на основі двох чи більше класів називається множинним наслідуванням.

Синтаксис опису множинного наслідування схожий на синтаксис простого наслідування. Наприклад:

class А

{ }; class B { }; class C : public A, public B

{ };

Всі базові класи перераховані після символу двокрапки ":" в рядочку опису похідного класу та розділені комами.

Проте, множинне наслідування використовується не часто, але може виявитися дуже корисним.

Приклад:

Є кінотеатри де показують фільми: кінотеатр = {назва кінотеатру, номер телефону, адресу, кількість місць}. Фільми включені до бази даних: фільм = {назва фільму, країна, режисер, жанр, рік. Визначити який жанр фільму бажають переглядати клієнти

#include <iostream>

#include <conio>

#include <string>

using namespace std;

class kinoteatr //

{public:

char name;

int phone;

char adress;

int places;

char Get_name ()

{return name;}

char Get_adress ()

{return adress;}

int Get_phone ()

{return phone;}

int Get_places ()

{return places;}

};

class films //

{public:

char films_name ;

char country;

char rejiser;

char janri ;

int year;

int kino_teatr;

char Get_films_name ()

{return films_name;}

char Get_country ()

{return country;}

char Get_rejiser ()

{return rejiser;}

int Get_year ()

{return year;}

};

class janr : public kinoteatr, public films

{

public :

int answer;

int x;

char Get_janr ()

{

label :cout << "Viberite kinoteatr : \n 1.Patria \n 2.Flakara \n 3.Ostalinie\n\n";

cin >> x ;

if (x == 1)

{

cout <<"V Patrii predpocitaiut KOMEDII \n";

}

else if (x==2)

{cout << "V Flakara predpocitaiut DRAMI\n ";}

else

{cout <<"V ostalinih kinoteatrah predpocitaiut TRILLERI \n ";

}

cout <<"\n\n Vi hotite posmotreti informatiu pro drugoi kinoteatr ?\n 1.yes\n 2.No\n\n\n";

cin >> answer;

if (answer == 1)

{

goto label;

}

else

return 0;

}

};

int main()

{

janr show; // создаём объект типа жанр

show.Get_janr (); // вызываем функцию которая вычисляет предпочтительные жанры

return 0;

}

Завдання

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]