- •75Федеральное агенство по образованию
- •Лабораторный практикум
- •Часть 1. Теоретические сведения 5
- •Часть 2. Лабораторный практикум 63
- •Часть 1 Теоретические сведения
- •1 . Классы и объекты Объектно-ориентированный подход к программированию
- •Понятия класса и объекта
- •Доступ к членам класса
- •Функции встроенные и невстроенные
- •Статические переменные-члены класса
- •2. Конструкторы и деструкторы Конструкторы
- •Конструктор с инициализацией членов класса по умолчанию
- •Деструкторы
- •3. Перегрузка
- •Перегрузка функций
- •Перегрузка конструкторов
- •Перегрузка операторов
- •4. Производные классы и наследование
- •Объявление производного класса
- •Состав производного класса
- •Защищенные члены класса
- •Конструкторы и производные классы
- •5. Виртуальные функции Понятие виртуальной функции
- •Обслуживание множества объектов класса
- •Использование виртуальных функций
- •Абстрактные базовые классы
- •6. Потоки ввода-вывода
- •Базовые операции с файловыми потоками
- •Перегрузка операторов вставки и извлечения
- •7. Живучесть объектов Проблемы хранения объектов на диске
- •Библиотечный класса string
- •Конструкторы
- •Функции-члены
- •Перегруженные операторы
- •Живучие объекты
- •Часть 2 Лабораторный практикум р аботы лабораторного практикума Работа №1. Понятия класса и объекта (индивидуальное задание а)
- •Работа №2. Встроенные и невстроенные функции-члены
- •Работа №3. Конструкторы
- •Работа №4. Деструкторы
- •Работа №5. Конструктор с инициализацией по умолчанию
- •Работа №6. Статическая переменная в составе класса
- •Работа №7. Перегрузка функций
- •Работа №8. Перегрузка конструкторов (индивидуальное задание b)
- •Работа №9. Перегрузка операторов (индивидуальное задание c)
- •Работа №10. Базовые и производные классы
- •Работа №11. Виртуальные функции
- •Работа №12. Потоки ввода-вывода
- •Работа №13. Перегрузка в прикладном классе операторов вставки и извлечения
- •Работа №14. Библиотечный класс string
- •Работа №15. Создание живучих объектов и запись их на диск
- •Работа №16. Чтение с диска живучих объектов
- •Индивидуальные задания лабораторного практикума
75Федеральное агенство по образованию
МОСКОВСКИЙ ИНЖЕНЕРНО-ФИЗИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ)
К.Г. Финогенов
Лабораторный практикум
«Основы объектно-ориентированного программирования»
Москва 2008
УДК 32.973.1
ББК 681.3
Ф59
Финогенов К.Г. Лабораторный практикум «Основы объектно-ориентированного программирования». Уч. пособие.
М.:МИФИ, 2008. 92 с.
Пособие предназначено для широкого круга читателей, приступающих к изучению современной идеологии разработки программных продуктов – методов объектно-ориентированного программирования (ООП). В первой части описываются основные понятия и концепции ООП, рассматривается аппарат ООП, изучается техника составления прикладных объектно-ориентированных программ.
Вторая часть пособия – описание лабораторного практикума по освоению разработки объектно-ориентированных приложений Windows.
Предназначено для обучения студентов кафедры компьютерных медицинских систем факультета автоматики и электроники МИФИ по курсам “Языки программирования и операционные системы” и “Компьютерный практикум”. Пособие может быть также полезно студентам, аспирантам и преподавателям, знакомым с языком С++ и программированием в системе Windows и желающим самостоятельно освоить современные методы разработки программных средств.
Рецензент В.В. Комаров
Рекомендовано редсоветом МИФИ в качестве учебного пособия
© Московский инженерно-физический институт (государственный университет), 2008
Редактор Н.В. Шумакова
Подписано в печать 00.00.2008 г. Формат 60 84 1/16
Печ. л. 5,75 Уч.-изд. л. 5,75 Тираж 120 экз.
Изд. № 000-0 Заказ
Московский инженерно-физический институт (государственный университет)
Типография МИФИ. 115409, Москва, Каширское шоссе, 31
С о д е р ж а н и е
Часть 1. Теоретические сведения 5
1. Классы и объекты 5
Объектно-ориентированный подход к программированию 5
Понятия класса и объекта 8
Доступ к членам класса 11
Функции встроенные и невстроенные 12
Статические переменные-члены класса 13
2. Конструкторы и деструкторы 15
Конструкторы 15
Конструктор с инициализацией членов класса по умолчанию 17
Деструкторы 18
3. Перегрузка 19
Перегрузка функций 20
Перегрузка конструкторов 21
Перегрузка операторов 23
4. Производные классы и наследование 28
Объявление производного класса 28
Состав производного класса 30
Защищенные члены класса 31
Конструкторы и производные классы 33
5. Виртуальные функции 34
Понятие виртуальной функции 34
Обслуживание множества объектов класса 35
Использование виртуальных функций 41
Абстрактные базовые классы 42
6. Потоки ввода-вывода 44
Иерархия потоковых классов ввода-вывода в С++ 44
Базовые операции с файловыми потоками 45
Перегрузка операторов вставки и извлечения 47
7. Живучесть объектов 52
Проблемы хранения объектов на диске 52
Библиотечный класса string 53
Живучие объекты 56
Часть 2. Лабораторный практикум 63
Работы лабораторного практикума 63
Работа №1. Понятия класса и объекта
(индивидуальное задание А) 63
Работа №2. Встроенные и невстроенные функции-члены 63
Работа №3. Конструкторы 64
Работа №4. Деструкторы 64
Работа №5. Конструктор с инициализацией по умолчанию 65
Работа №6. Статическая переменная в составе класса 65
Работа №7. Перегрузка функций 66
Работа №8. Перегрузка конструкторов
(индивидуальное задание B) 66
Работа №9. Перегрузка операторов
(индивидуальное задание C) 67
Работа №10. Базовые и производные классы 68
Работа №11. Виртуальные функции 69
Работа №12. Потоки ввода-вывода 70
Работа №13. Перегрузка в прикладном классе операторов
вставки и извлечения 71
Работа №14. Библиотечный класс string 72
Работа №15. Создание живучих объектов и запись их
на диск 72
Работа №16. Чтение с диска живучих объектов 73
Индивидуальные задания лабораторного практикума 75
Список литературы 92