Сайты ТУСУРа

Объектно-ориентированное программирование

Учебное пособие

В пособии представлены материалы для получения базовых знаний по объектно-ориентированному программированию на языке C++. Для студентов высших учебных заведений, обучающихся по направлению подготовки 11.03.01 «Радиотехника», а также по другим направлениям подготовки технических специальностей.

Кафедра телевидения и управления

Библиографическая запись:

Демаков, А. В. Объектно-ориентированное программирование: Учебное пособие [Электронный ресурс] / А. В. Демаков, А. А. Квасников, С. П. Куксенко. — Томск: ТУСУР, 2022. — 190 с. — Режим доступа: https://edu.tusur.ru/publications/10651
Год издания: 2022
Количество страниц: 190
Скачиваний: 75

Оглавление (содержание)

Предисловие ............................................................................................................................................................ 6

Введение ................................................................................................................................................................... 9

1 Онлайн-компиляторы и интегрированные среды разработки...................................................................... 12

1.1 Вводные замечания ........................................................................................................................................... 12

1.2 Онлайн-компиляторы ....................................................................................................................................... 13

1.3 Интегрированные среды разработки............................................................................................................. 15

1.4 Рекомендации по использованию средств разработки ............................................................................. 15

1.5 Оформление программного кода.................................................................................................................... 16

2 Языки С и C++ как братья................................................................................................................................... 18

2.1 Вводные замечания ........................................................................................................................................... 18

2.2 С и C++: явные различия.................................................................................................................................. 20

2.3 Особенности синтаксиса С++ ........................................................................................................................ 24

2.3.1 Потоковый ввод и вывод ................................................................................................................................. 24

2.3.2 Ключевые слова............................................................................................................................................... 27

2.3.3 Инициализация переменных ........................................................................................................................ 30

2.3.4 Явное приведение типов................................................................................................................................. 31

2.3.5 Условный оператор с инициализатором...................................................................................................... 32

2.3.6 Ссылки............................................................................................................................................................... 33

2.3.7 Псевдонимы типов данных ............................................................................................................................. 35

2.3.8 Шаблоны функций ........................................................................................................................................... 37

2.3.9 Обработка исключений................................................................................................................................... 40

2.3.10 Встраиваемые функции ................................................................................................................................ 43

2.4 Разделение программы на файлы................................................................................................................... 44

2.4.1 Файлы заголовков и реализации................................................................................................................... 44

2.4.2 Защита от повторного включения файлов заголовков ............................................................................. 46

3 Объектно-ориентированное программирование: инкапсуляция ................................................................. 52

3.1 Вводные замечания ............................................................................................................................................. 52

3.2 Структуры.............................................................................................................................................................. 53

3.3 Классы .................................................................................................................................................................. 55

3.3.1 Конструкторы ..................................................................................................................................................... 55

3.3.2 Определение и реализация ............................................................................................................................ 58

3.3.3 Деструкторы....................................................................................................................................................... 59

3.3.4 Арифметические операции.............................................................................................................................. 60

3.3.5 Спецификаторы доступа................................................................................................................................... 61

3.3.6 Сеттеры и геттеры...............................................................................................................................................63

3.3.7 Перегрузка операторов ................................................................................................................................... 67

3.3.8 Массивы объектов.............................................................................................................................................. 71

3.3.9 Пользовательский класс Complex: часть 1 .................................................................................................... 71

3.3.10 Динамическое создание объектов ................................................................................................................ 74

3.3.11 Шаблоны классов: пользовательский класс Vector.................................................................................... 75

3.3.12 Лямбда-выражения.......................................................................................................................................... 80

3.4 Итоговые замечания............................................................................................................................................. 83

4 Объектно-ориентированное программирование: наследование................................................................... 90

4.1 Вводные замечания .............................................................................................................................................. 90

4.2 О спецификаторах доступа ................................................................................................................................ 93

4.3 Отношения между производными и базовыми классами............................................................................... 95

4.4 Дружественные функции, методы и классы ...................................................................................................... 98

4.5 Правила наследования методов ........................................................................................................................ 101

4.6 Множественное наследование ........................................................................................................................... 105

4.7 Сокрытие методов базового класса................................................................................................................... 109

4.8 Виртуальные функции и методы, абстрактные классы и интерфейсы ........................................................... 111

5 Объектно-ориентированное программирование: полиморфизм...................................................................... 118

5.1 Вводные замечания ................................................................................................................................................. 118

5.2 Перегрузка методов класса ................................................................................................................................. 119

5.3 Перегрузка операторов ........................................................................................................................................ 120

5.3.1 Бинарные операторы............................................................................................................................................ 121

5.3.2 Унарные операторы ............................................................................................................................................. 123

5.3.3 Особые операторы................................................................................................................................................ 124

5.3.4 Правила перегрузки операторов ...................................................................................................................... 126

5.3.5 Пользовательский класс Complex: часть 2 ...................................................................................................... 127

5.4 Виртуальные методы (функции) ............................................................................................................................. 131

Заключение ................................................................................................................................................................... 135

Список использованных источников и литературы ................................................................................................ 136

Список рекомендуемой литературы........................................................................................................................... 137

Приложение А (информационное) Инструкция по установке и настройке Microsoft Visual Studio ................. 139

Приложение Б (информационное) Инструкция по установке и настройке Qt Creator........................................ 141

Приложение В (информационное) Рекомендации по именованию элементов программного кода................. 147

Приложение Г (информационное) Стандартная библиотека шаблонов .............................................................. 150

Приложение Д (информационное) Инструкция по созданию проекта в Microsoft Visual Studio....................... 167

Приложение Е (информационное) Инструкция по созданию проекта в Qt Creator............................................. 171

Приложение Ж (информационное) Унифицированный язык моделирования UML.............................................. 175

Приложение З (информационное) Шаблоны проектирования ............................................................................... 182


Похожие пособия