Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кетков.doc
Скачиваний:
17
Добавлен:
27.09.2019
Размер:
2.22 Mб
Скачать

Раздел 10. Пользовательские типы данных. 95

10.1. Структуры 96

10.1.1. Объявление и инициализация структур 96

10.1.2. Структуры – параметры функций 98

10.1.3.Функции, возвращающие структуры 100

10.1.4. Структуры в языке C++ 101

10.2. Перечисления 101

10.3. Объединения 103

Раздел 11. Работа с файлами 104

11.1.Файлы в операционной системе 105

11.1. Текстовые (строковые) файлы 107

11.2. Двоичные файлы 110

11.3. Структурированные файлы 112

11.4. Форматные преобразования в оперативной памяти 113

11.5. Файловые процедуры в системе BCB 114

11.5.1. Проверка существования файла 114

11.5.2. Создание нового файла 114

11.5.3. Открытие существующего файла 114

11.5.4. Чтение из открытого файла 115

11.5.5. Запись в открытый файл 115

11.5.6. Перемещение указателя файла 115

11.5.7. Закрытие файла 115

11.5.8. Расчленение полной спецификации файла 115

11.5.9. Удаление файлов и пустых каталогов 116

11.5.10. Создание каталога 116

11.5.11. Переименование файла 116

11.5.12. Изменение расширения 116

11.5.13. Опрос атрибутов файла 116

11.5.14. Установка атрибутов файла 117

11.5.15. Опрос и изменение текущего каталога 117

11.6. Поиск файлов в каталогах 117

Раздел 12. Библиотеки стандартных и нестандартных функций 118

12.1. Библиотеки системных функций в Borland C++ 3.1 119

12.2. Организация пользовательских библиотек 121

12.3. Динамически загружаемые библиотеки 122

Раздел 13. Дополнительные сведения о системе программирования Borland C++ 3.1 123

13.1. Препроцессор и условная компиляция 123

13.2. Компилятор bcc.exe 126

13.3. Утилита grep.com поиска в текстовых файлах 128

Раздел 14. Функции. Новые возможности в C++ 130

14.1. Переопределение (перегрузка) функций 130

14.2. Шаблоны функций 131

Раздел 15. Классы. Создание новых типов данных 131

15.1. Школьные дроби на базе структур 131

15.2. Школьные дроби на базе классов 136

15.3. Класс на базе объединения 141

15.4. Новые типы данных на базе перечисления 142

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

15.6. Переопределение операций (резюме) 145

15.8. Конструкторы и деструкторы (резюме) 148

Раздел 16. Классы как средство создания больших программных комплексов 150

16.1. Базовый и производный классы 150

16.1.1.Простое наследование 150

16.1.2. Вызов конструкторов и деструкторов при наследовании 152

16.1.3. Динамическое создание и удаление объектов 156

16.1.4. Виртуальные функции 157

16.1.5. Виртуальные деструкторы 158

16.1.6. Чистые виртуальные функции и абстрактные классы 159

16.2. Множественное наследование и виртуальные классы 160

16.3. Объектно-ориентированный подход к созданию графической системы 162

Раздел 17. Прерывания, события, обработка исключений 167

17.1. Аппаратные и программные прерывания 167

17.2. Исключения 168

Литература по С/С++ 171

Введение

Предлагаемый курс написан по материалам лекций, читавшихся автором на протяжении ряда лет студентам первых курсов факультета вычислительной математики и кибернетики Нижегородского государственного университета им. Н.И. Лобачевского. Как правило, лекции по языкам программирования C, C++ читаются во 2-м семестре после полугодичного курса "Основы программирования", построенного на базе алгоритмического языка Паскаль в средах Turbo Pascal 7.0, Delphi 6. Во втором семестре для обучения используются системы программирования Borland C++ (ver 3.1) и Borland C++ Builder (ver 5.0). Близость интегрированных сред и идейное совпадение основных синтаксических конструкций позволяют избежать ненужных повторений при изучении особенностей второго языка программирования.

Автор выражает признательность сотруднику НИИ прикладной математики и кибернетики ННГУ А.И. Кузнецову, который внимательно прочитал содержимое всех разделов и тщательно проверил все примеры программ. Его советы и рекомендации были учтены при оформлении окончательного варианта предлагаемого пособия.