
Множинне наслідування
Клас може бути похідним не лише від одного базового класу. А й від кількох.
Створення класу на основі двох чи більше класів називається множинним наслідуванням.
Синтаксис опису множинного наслідування схожий на синтаксис простого наслідування. Наприклад:
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
|
|