- •Оглавление
- •Наследование
- •Синтаксис объявления производного класса
- •Доступ к элементам базового класса в классе-наследнике
- •Механизм наследования
- •Конструктор и деструктор производного класса
- •Полиморфизм
- •Виртуальные функции
- •Правила описания и создания виртуальных функций
- •Абстрактные и конкретные классы
- •Int a,b; // но для производного класса они доступны
- •Int a,b; // но для производного класса они доступны
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
факультет радиофизики и компьютерных технологий
кафедра информатики и компьютерных систем
Н.В. Серикова
ПРАКТИЧЕСКОЕ РУКОВОДСТВО
к лабораторному практикуму
КЛАССЫ. НАСЛЕДОВАНИЕ. ПОЛИМОРФИЗМ
по курсу
«ПРОГРАММИРОВАНИЕ»
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
