Учебное пособие
Кафедра телевидения и управления
Библиографическая запись:
Оглавление (содержание)
Предисловие ............................................................................................................................................................ 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