Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_лаб_9.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
309.76 Кб
Скачать

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

факультет радиофизики и компьютерных технологий

кафедра информатики и компьютерных систем

Н.В. Серикова

ПРАКТИЧЕСКОЕ РУКОВОДСТВО

к лабораторному практикуму

КЛАССЫ. НАСЛЕДОВАНИЕ. ПОЛИМОРФИЗМ

по курсу

«ПРОГРАММИРОВАНИЕ»

2015

МИНСК

Практическое руководство к лабораторному практикуму «КЛАССЫ. НАСЛЕДОВАНИЕ. ПОЛИМОРФИЗМ» по курсу «ПРОГРАММИРОВАНИЕ» предназначено для студентов, изучающих базовый курс программирования на языке С++, специальностей «Радиофизика», «Физическая электроника», «Компьютерная безопасность».

Руководство содержит некоторый справочный материал, примеры решения типовых задач с комментариями.

Все примеры протестированы в среде Microsoft Visual Studio 2005.

Автор будет признателен всем, кто поделится своими сообра­же­ниями по совершенствованию данного пособия.

Воз­можные предложения и замечания можно присылать по адресу:

E-mail: Serikova@bsu.by,

Оглавление

Наследование 5

Наследование 5

Синтаксис объявления производного класса 6

Синтаксис объявления производного класса 6

Доступ к элементам базового класса в классе-наследнике 7

Доступ к элементам базового класса в классе-наследнике 7

Механизм наследования 8

Механизм наследования 8

Конструктор и деструктор производного класса 11

Конструктор и деструктор производного класса 11

Полиморфизм 12

Полиморфизм 12

Виртуальные функции 13

Виртуальные функции 13

Правила описания и создания виртуальных функций 14

Правила описания и создания виртуальных функций 14

Абстрактные и конкретные классы 15

Абстрактные и конкретные классы 15

ПРИМЕР 1. Синтаксис объявления производного класса 16

ПРИМЕР 1. Синтаксис объявления производного класса 16

ПРИМЕР 2. Спецификатор наследования public 17

ПРИМЕР 2. Спецификатор наследования public 17

ПРИМЕР 3. Спецификатор наследования private 18

ПРИМЕР 3. Спецификатор наследования private 18

18

18

ПРИМЕР 4. Спецификатор наследования private 19

ПРИМЕР 4. Спецификатор наследования private 19

ПРИМЕР 5. Спецификатор доступа protected 20

ПРИМЕР 5. Спецификатор доступа protected 20

ПРИМЕР 6. Спецификатор доступа protected 21

ПРИМЕР 6. Спецификатор доступа protected 21

ПРИМЕР 7. Спецификатор наследования protected 22

ПРИМЕР 7. Спецификатор наследования protected 22

ПРИМЕР 8. Простое наследование. Конструктор, деструктор в базовом классе 23

ПРИМЕР 8. Простое наследование. Конструктор, деструктор в базовом классе 23

ПРИМЕР 9. Конструктор и деструктор при наследовании 24

ПРИМЕР 9. Конструктор и деструктор при наследовании 24

ПРИМЕР 10. Передача аргумента конструктору производного класса 25

ПРИМЕР 10. Передача аргумента конструктору производного класса 25

ПРИМЕР 11. Синтаксис вызова конструктора базового класса из конструктора производного класса 26

ПРИМЕР 11. Синтаксис вызова конструктора базового класса из конструктора производного класса 26

ПРИМЕР 12. Передача аргументов в конструктор базового класса из конструктора производного класса 27

ПРИМЕР 12. Передача аргументов в конструктор базового класса из конструктора производного класса 27

ПРИМЕР 13. Множественное наследование 28

ПРИМЕР 13. Множественное наследование 28

ПРИМЕР 14. Множественное наследование 30

ПРИМЕР 14. Множественное наследование 30

ПРИМЕР 15. Конструктор и деструктор при множественном наследовании 32

ПРИМЕР 15. Конструктор и деструктор при множественном наследовании 32

ПРИМЕР 16. Множественное наследование. Неопределенность 33

ПРИМЕР 16. Множественное наследование. Неопределенность 33

ПРИМЕР 17. Множественное наследование. Неопределенность 35

ПРИМЕР 17. Множественное наследование. Неопределенность 35

ПРИМЕР 18. Виртуальный базовый класс 37

ПРИМЕР 18. Виртуальный базовый класс 37

ПРИМЕР 19. Полиморфизм. Переопределение метода 39

ПРИМЕР 19. Полиморфизм. Переопределение метода 39

ПРИМЕР 20. Указатель на объект производного класса 40

ПРИМЕР 20. Указатель на объект производного класса 40

ПРИМЕР 21. Виртуальная функция 41

ПРИМЕР 21. Виртуальная функция 41

ПРИМЕР 22. Виртуальная функция 42

ПРИМЕР 22. Виртуальная функция 42

ПРИМЕР 23. Иерархический порядок наследования виртуальных функций 44

ПРИМЕР 23. Иерархический порядок наследования виртуальных функций 44

ПРИМЕР 24. Виртуальный базовый класс 46

ПРИМЕР 24. Виртуальный базовый класс 46

ПРИМЕР 25. Позднее связывание 48

ПРИМЕР 25. Позднее связывание 48

ПРИМЕР 26. Абстрактный класс 50

ПРИМЕР 26. Абстрактный класс 50

ПРИМЕР 27. Вызов метода производного класса из метода базового класса 52

ПРИМЕР 27. Вызов метода производного класса из метода базового класса 52

ПРИМЕР 28. Вызов методов производных классов из метода базового класса Виртуальные функции 54

ПРИМЕР 28. Вызов методов производных классов из метода базового класса Виртуальные функции 54