- •Министерство образования Российской Федерации
- •Предисловие
- •Лабораторная работа № 1
- •Краткие теоретические сведения. Класс.
- •Примеры.
- •Пример.
- •Лабораторная работа № 2 наследование и виртуальные функции
- •Краткие теоретические сведения.
- •1) Студент, преподаватель, персона, завкафедрой;
- •Иерархия объектов.
- •Здесь gr объект-группа.
- •Студент Преподаватель Кафедра Студенческая группа Завкафедрой Факультет
- •Факультет
- •Студенты Студенты Преподаватели Преподаватели
- •1. Имена всех лиц мужского (женского) пола.
- •Объект-калькулятор, работающий с целыми числами.
- •Калькулятор
- •Лабораторная работа № 5 перегрузка операций
- •Лабораторная работа № 6 шаблоны функций и классов
- •Лабораторная работа № 7 потоковые классы
- •Лабораторная работа № 8 стандартная библиотека шаблонов
- •3. Классы-контейнеры.
- •I. Немодифицирующие операции.
- •II. Модифицирующие операции.
- •III. Сортировка.
- •IV. Работа с множествами.
- •V. Минимумы и максимумы.
- •VII. Перестановки.
- •Список литературы Основная
- •Дополнительная
Министерство образования Российской Федерации
Пермский государственный технический университет
Кафедра автоматизированных систем управления
А.М. Ноткин
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
НА ЯЗЫКЕ С++
Утверждено Редакционно-издательским советом
университета в качестве учебного пособия
Пермь 2001
ОГЛАВЛЕНИЕ
Предисловие…………………………………………………………….4
Лабораторная работа № 1. Классы и объекты в С++……...………...5
Лабораторная работа № 2. Наследование и виртуальные
функции……………...………………………………………………………..16
Лабораторная работа № 3. Иерархия объектов и группа.
Итераторы..………..…...……………………………………………………..25
Лабораторная работа № 4. Обработка событий……………….……34
Лабораторная работа № 5. Перегрузка операций…………….…….46
Лабораторная работа № 6. Шаблоны функций и классов……...…59
Лабораторная работа № 7. Потоковые классы……...……………...67
Лабораторная работа № 8. Стандартная библиотека шаблонов…79
Список литературы……………………...……………………….…..92
Предисловие
Цель практикума закрепить знания, полученные при изучении теоретической части курсов и получить практические навыки разработки объектно-ориентированных программ. Практикум охватывает все разделы объектно-ориентированного программирования на языке С++ и включает выполнение восьми лабораторных работ. Первые четыре работы связаны с базовыми понятиями С++, такими как объекты и классы, наследование, полиморфизм и виртуальные функции, обработка событий. Последние четыре работы посвящены профессиональному программированию на С++ и охватывают разделы профессионального программирования, такие как перегрузка операций, шаблоны, потоковые классы и стандартная библиотека шаблонов.
Данное пособие дополняет конспект лекций того же автора “Алгоритмические языки и технология программирования. Часть 3: Объектно-ориентированное программирование на С++”.
Лабораторные работы № 1 № 4 выполняются в среде Turbo C++ 3.0; № 5 № 8 в среде Borland C++ 5.02.
Лабораторная работа № 1
КЛАССЫ И ОБЪЕКТЫ В С++
Цель. Получить практические навыки реализации классов на С++.
Основное содержание работы.
Написать программу, в которой создаются и разрушаются объекты, определенного пользователем класса. Выполнить исследование вызовов конструкторов и деструкторов.
Краткие теоретические сведения. Класс.
Класс фундаментальное понятие С++, он лежит в основе многих свойств С++. Класс предоставляет механизм для создания объектов. В классе отражены важнейшие концепции объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм.
С точки зрения синтаксиса, класс в С++ это структурированный тип, образованный на основе уже существующих типов.
В этом смысле класс является расширением понятия структуры. В простейшем случае класс можно определить с помощью конструкции:
тип_класса имя_класса{список_членов_класса};
где
тип_класса – одно из служебных слов class, struct, union;
имя_класса – идентификатор;
список_членов_класса – определения и описания типизированных данных и принадлежащих классу функций.
Функции – это методы класса, определяющие операции над объектом.
Данные – это поля объекта, образующие его структуру. Значения полей определяет состояние объекта.