8911

Множественное наследование в языке С++

Лабораторная работа

Информатика, кибернетика и программирование

Множественное наследование в языке С++. 1. Цель работы Целью лабораторной работы является получение практических навыков при использовании множественного наследования в языке С++. 2. Темы для предварительного изучения Введение в классы П...

Русский

2013-02-19

195.5 KB

15 чел.

Множественное наследование в языке С++.

1. Цель работы

Целью лабораторной работы является получение практических навыков при использовании множественного наследования в языке С++.

2. Темы для предварительного изучения

  •  Введение в классы
  •  Перегрузка функций
  •  Перегрузка операторов
  •  Наследование
  •  Множественное наследование

3. Варианты индивидуальных заданий

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

4. Задание к выполнению

Необходимо построить иерархию классов согласно схеме наследования, приведенной в варианте задания.

Каждый класс должен содержать инициализирующий конструктор и функцию show для вывода значений.
Функция
main должна иллюстрировать иерархию наследования.

5. Пример выполнения (вариант 25)


Сначала создадим необходимую иерархию классов. Следуя ей мы получим:

class B{

 int a;

public:

};

class D1: public B {

int b;

public:

};

class D2: private B{

int c;

public:

};

class D3: private D1, public D2 {

int d;

public:

};

class D4: public D2, private D1 {

int e;

public:

};

Создадим теперь во всех классах конструкторы, которые смогли бы по цепочке наследования инициализировать свои переменные и передавать остальные значения дальше вверх вплоть до конструктора базового класса.

 B(int x) { a=x; }

D1(int x, int y) : B(y) { b=x;};

D2(int x, int y) : B(y) { c=x;};

D3(int x, int y, int z, int i, int j) : D1(y,z), D2(i,j) { d=x;}

D4(int x, int y, int z, int i, int j) : D1(y,z), D2(i,j) { e=x;}

Теперь добавим в каждый класс функцию show, которая бы выводила на экран переменную из секции private класса, которому принадлежит сама и вызывала бы функции show тех классов, которые стоят выше по иерархии наследования.

 void show_B() { cout <<"B=   "<< a << "\n"; }

void show_D1() { cout << "D1=  "<< b << "\n"; show_B();}

void show_D2() { cout <<"D2=  "<< c << "\n"; show_B();}

void show_D3() { cout << "D3=  "<<d << "\n"; show_D1(); show_D2();}

void show_D4() { cout <<"D4=  "<< e << "\n"; show_D1(); show_D2();}


Демонстрация иерархии наследования

main() {

clrscr();

D3 temp(100,200,300,400,500);

D4 temp1(1,2,3,4,5);

cout << "D3 temp(100,200,300,400,500);\n";

cout << "D4 temp1(1,2,3,4,5);\n";

cout<< "\nСледуя иерархии класса D3: \n";

temp.show_D3();

cout<< "\nСледуя иерархии класса D4\n";

temp1.show_D4();

getch();

return 0;}


 

А также другие работы, которые могут Вас заинтересовать

10717. Намагатись бути самим собою - єдиний засіб досягти успіху 29 KB
  Тема: Намагатись бути самим собою єдиний засіб досягти успіху. Стендаль Світ для тих хто вміє хотіти... Подивіться навкруги... Ви неодмінно побачите навколо себе безліч копій. Озирніться ще разІ помітите що усі люди наче злилис...
10718. Моя будущая профессия - психолог 29 KB
  Сочинение на тему: Кем я буду когда вырасту Моя будущая профессия психолог Как и все дети ответ на вопрос взрослых Кем ты хочешь быть когда вырастешь я изменяла едва ли не каждый день: когда я была маленькая я хотела быть
10719. Образец сочинения на тему Что такое красота - дар или проклятие? 31 KB
  Образец сочинения на тему Что такое красота дар или проклятие ТЕКСТ Давно замечен парадоксальный факт: особенно красивые люди часто бывают одиноки и несчастны. 2Жизнь таких известных красавиц как Елены царицы Спарты и Клеопатры Мэрилин Монро и принцессы Диа
10720. Проблема исторической памяти (ответственность за горькие и страшные последствия прошлого) 76.51 KB
  Проблема исторической памяти ответственность за горькие и страшные последствия прошлого Проблема ответственности национальной и человеческой была одной из центральных в литературе в середине 20ого века. Например А.Т.Твард
10721. Прозові тексти (оповідання) для аналітичної рецепції в курсі Теорія літератури 652.5 KB
  Прозові тексти оповідання для аналітичної рецепції в курсі Теорія літератури Укладач Б.І.Ніколаєв ЗМІСТ 1.Джойс Керол Оутс ЗДІЙСНЕННЯ БАЖАНЬ 2. Джон Чівер АНГЕЛ НА МОСТУ 3. Трумен Капоте ДІТИ В ДЕНЬ НАРОДЖЕННЯ 4. БОРИС ВІАН СТАТИСТ 5. ВОЛОДИМИР ДАНИЛЕНК...
10722. Избранные педагогические сочинения А.С. Макаренко Педагогическая логика 597.69 KB
  Избранные педагогические сочинения А.С. Макаренко Педагогическая логика Не может быть вопроса более для нас важного чем вопрос о логике педагогического средства. Интересно бросить взгляд на историю этого вопроса тем более что история эта очень коротка. Нам нечег...
10723. Прогрессивные технологические процессы (ТП) на основе современных достижений науки и техники 462.12 KB
  Введение Уровень сельскохозяйственного машиностроения является определяющим фактором всего хозяйственного комплекса страны. Важнейшими условиями ускорения развития хозяйственного комплекса являются рост производительности труда повышение эффективности произв...
10724. ИСПОЛЬЗОВАНИЕ ЭЛЕКТРОУСТАНОВОК В СЕЛЬСКОХОЗЯЙСТВЕННОЙ ПРАКТИКЕ 21.38 KB
  ИСПОЛЬЗОВАНИЕ ЭЛЕКТРОУСТАНОВОК В СЕЛЬСКОХОЗЯЙСТВЕННОЙ ПРАКТИКЕ Электрические сети в сельской местности. Электрическими сетями называют часть электрической системы состоящей из трансформаторных подстанций и линий различных напряжений. В сельской местности по эле...
10725. Проектирование системы автоматического регулирования, которая впоследствии была смоделирована в системе MatLab 938.36 KB
  ВВЕДЕНИЕ Важнейшей отраслью промышленности Украины является черная металлургия. От объема производства и качества металла зависит развитие народного хозяйства. Продукция предприятий черной металлургии составляет весомую долю в экспортной политике государства.