С++. Экспресс-курс

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Книга представляет собой руководство по прогpаммированию на С++, позволяюшее быстро освоиться в данном алгoритмическом языке, и включает как необходимый теоретический материал, так и реализации задуманных прогpамм в виде листингoв, поясняюших рисунков, таблиц. Начав с изучения основ языка, читатель знакомится с принципами перехода от формальногo словесногo описания задачи к описанию, понятному для ПК и позволяющему решить ее за короткое время, постепенно осваивает все более сложные конструкции, учится сам использовать богатый арсенал С++. Приводятся примеры не только работающих, "отлаженных" прогpамм, но и наиболее вероятных ошибок, возникающих в процессе написания прогpaммы и не всегд распознаваемых компилятором. Рассматриваемые встроенные функции, библиотеки дают возможность при правильном подключении уже гoтовых функций, макросов значительно сократить прогpаммный код. Для начинающих программистов

Author(s): Лаптев В.В.
Publisher: БХВ-Петербург
Year: 2004

Language: Russian
Pages: 511
City: Санкт-Петербург

Введение 9
Кому адресована эта книга 11
Структура книги 11
Используемые программные продукты 12
Благодарности 13

ЧАСТЬ 1. ОСНОВЫ ПРОfРАММИРОВАНИЯ НА C++ 15
Глава 1. Как написать прогpамму на C++ 17
Проверка условий 22
Оператор-переключатель 27
Повторение вычислений 29
Операторы bгeak и coпtiпue 33
Встроенные типы данных 34
Дробные числа 34
Целые числа 40
Символы и строки 46
Операции присваивания и выражения 49
Преобразование типов 51
Дрyгие операции 52
Печальная действительность 57
"Страшный зверь" по имени uпdejiпed behavioг 59

Глава 2. Функции 61
Библиотечные функции 62
Математические функции 63
Как написать функцию 66
Определение функции 68
Список параметров и вызов функции 70
Передача параметров по значению 71
Параметры по умолчанию 73
Область видимости и "время жизни" переменных 77
Передача параметров по ссылке 82
Константные параметры функций 84
Побочный эффект 85
Перегpузка функций 89
Шаблоны функций 92
Символы 95
Макросы и iпliпе-функции 99
Применение препроцессора с пользой 101

Глава 3. Группы данных 105
Массивы 105
Обработка числовых массивов 109
Индексы как параметры 116
Многомерные массивы 119
Cтроки 120
Обработка символьных массивов 123
Ввод и вывод массивов символов 125
структуры 127
Структуры как параметры 129
Шаблоны структур 132
Массивы и структуры 134
Структуры, функции и шаблоны 135
Размеры структур 140

Глава 4. Тяжелое наследие С 143
Параметрымассивы в форме указателя 143
Что такое указатели 144
Виды указателей 147
Объявление типизированных указателей 148
Бестиповые указатели и преобразование типов 150
Массивы и указатели 151
Указатели как пара метры 153
Бестиповые указатели как параметры 155
Указатели на символы 157
Русские буквы 158
Библиотека stгing.h 159
Указатели на символы - переменные и константы 161
Указатели и динамическая память 164
Мнoгoмepныe динамические массивы 166
Mнoгoмepныe массивы как параметры 168
Структуры и указатели 169
Структуры с указателями 169
Проблемы с указателями 173
Указатели на функции как параметры 175
Экономия памяти 177
Параметры функции maiп 179

Глава 5. Стандартная библиотека 183
Логический тип данных 184
Новые строки 184
Строки как параметры 189
Числа - прописью 191
Контейнеры, итераторы и алгоритмы 195
Векторы вместо массивов 196
Указатели и контейнеры 203
Стандартные алгоритмы и итераторы 204
Поиск в контейнере 209
Сортировки 214
Обработка контейнеров и функциональные объекты 215

Глава 6. Ввод и вывод в С++ 221
Стандартные потоки в С++ 222
Ввод данных 223
Ввод строк 225
Потоки и файлы 227
Каталоги 228
Протестируемся 231
Состояния потока 234
Макет сохранения информации 235
Прогpамма тестирования 238
Форматирование вывода 240
Снова о прогpамме тестирования 242
Режимы открытия потоков (файлов) 246
Текстовые и двоичные файлы 247
Двоичные файлы и прямой доступ 249
Шифрование файлов 250
Соберем все вместе 254
Строковые потоки 257

Глава 7. Снова о функциях 259
"Левые" функции 259
"Левые" функции с указателями 262
Функции с переменным числом параметров 264
Стандартные средства 270
Рекурсивные функции 272
Формы рекурсивных функций 275
Выполнение рекурсивных функций 278
Рекурсия при обработке динамических структур данных 284
Односвязный линейный список 284
Двоичное дерево 286
Параметры в рекурсивных функциях 289


ЧАСТЬ 11. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 291
Глава 8. Создание простых типов 293
Перегрузка операций 293
Перегpузка операций для епum 295
Снова структуры 300
Конструкторы 306
Конструкторы и параметры функций 311
Конструкторы и преобразование типов 312
Перегрузка операций методами 316
Внешняя или внутренняя? 319
Классы и структуры 322

Глава 9. Динамические классы 327
Массивы с задаваемыми индексами 327
Конструкторы и деструкторы 330
Копирующее присваивание 332
"Разноликие" матрицы 335
Перегpузка индексирования для нецелых apгyмeнтoв 339
Последовательный контейнер 340
"Интеллектуальные" указатели 343
auto_ptг 345

Глава 10. Исключения - что это такое 347
Принципы обработки исключений 347
генерация исключений 348
Перехват исключений 349
Функции и исключения 350
Передача информации в блок обработки 352
Спецификация исключений 353
Конструкторы, деструкторы и исключения 354
Стандартные исключения 357

Глава 11. НаследоВание 361
Простое наследование 361
Открытое наследование 363
Конструкторы и деструкторы в производных классах 365
Закрытое наследование 368
Виртуальность 370
RTTI и dyпamic_cast 374
Большие прогpаммы 376
Переменные, функции и файлы 377
Пространства имен 379
Именованные пространства имен 380
Неименованные пространства имен 382
Использование препроцессора 384

Глава 12. Обобщенное прогpаммирование 387
Процедурное обобщенное программирование 388
Полиморфные функции 391
Способы передачи параметровуказателей на функции 393
Указатели на функцию в списках переменной длины 393
Возврат указателя на функцию 398
функционально-объектное обобщенное прогpаммирование 401
Решения стандартной библиотеки 405
Объектно-ориентированное обобщенное прогpаммирование 407
Абстрактные классы 409
МетапрогpаммироВание 410

ЧАСТЬ III. КАК НАПИСАТЬ ПРОГРАММУ ДЛЯ WINDOWS 415
Глава 13. Windows - это не просто 417
Венгерская нотация 417
Консольные приложения и Uпiсоdе 420
Оконные приложения 425
Создание "пустой" Прогpаммы 425
Интерфейс прогpаммы умножения 430
Создание меню 431
Создание элементов управления 433
Обработка сообщений 436
Стоила ли игpа свеч 441

Глава 14. Быстрая разработка приложений 443
Шаг 1 443
Шаг 2 444
Шаг 3 447
Шаг 4 450
Шаг 5 451
Заключение 457

ЧАСТЬ IV. ПРИЛОЖЕНИЯ 459
Приложение 1. Системы фирмы Boгland 461

Boгland С++ 3.1 461
Запуск IDЕ и выход 462
Создание и сохранение прогpаммы 463
Многофайловые прогpаммы 465
Создание и изменение проекта 465
Компиляция, компоновка и выполнение 466
Работа с отладчиком 466
Точки прерывания 466
Выполнение до курсора 467
Пооператорное (пошаговое) выполнение 467
Просмотр и изменение переменных 467
Справочная система 467

Boгland С++ 5 470
Запуск IDЕ 470
Создание и выполнение консольных прогpамм 470
Продолжение работы с прогpамМой 474
Создание проекта прогpаМмы 474
Работа с отладчиком 476
Справочная система 476

Boгland С++ Buildeг 6 479
Запуск IDЕ 479
Создание HOBoгo проекта 479
Продолжение работы с Прогpаммой 482
Компиляция, компоновка и выполНение 482
Работа с отладчиком 482
Справочная система 483

Приложение 2. Интегpированная среда Мiсгоsоft VisuaI С++ 6 485
Запуск IDЕ 485
Создание и выполнение прогpамм 485
Продолжение работы с проеКТОМ 489
Конфигyрация проекта 490
Работа с отладчиком 490

Приложение 3. Ресурсы С++ в интернете 493
Приложение 4. Список литературы 495

Предметный указатель 499