C++. Объектно-ориентированное программирование
Лаптев В.В.
Учебное пособие для студентов посвящено объектно-ориентированному программированию на языке С++. Описываются объектно-ориентированные конструкции языка, библиотека STL и их практическое применение. На примерах разработки контейнерных классов и итераторов излагаются принципы организации библиотеки STL. В связи с изложением реализации контейнеров много внимания уделено и управлению памятью. Подробно описана библиотека ввода-вывода, причем как процедурная, так и объектно-ориентированная. Дано описание ряда ключевых шаблонов программирования, связанных с конкретными конструкциями С++. В качестве примера рассмотрено приложение, разработанное с использованием полученных знаний и WinAPI. В конце каждой главы - краткое резюме, контрольные вопросы и набор заданий.
Для студентов и преподавателей вузов, читателей, знакомых с основами С++, желающих стать профессиональными программистами.
Издательство: Питер, 2008 г.
ISBN 978-5-91180-200-4
Количество страниц: 464.
Содержание книги «C++. Объектно-ориентированное программирование»:
- 11 Введение
- 13 Структура книги
- 14 Использованные программные продукты
- 15 Благодарности
- 15 От издательства
- 16 Глава 1. Классы и объекты
- 17 Зачем нужны классы?
- 23 Определение класса
- 24 Доступ к элементам класса
- 26 Определение методов класса
- 29 Указатель this
- 30 Перегрузка методов
- 33 Размеры объектов класса
- 37 Использование класса
- 41 Резюме
- 42 Контрольные вопросы
- 43 Упражнения
- 45 Глава 2. Конструкторы
- 45 Определение конструктора
- 49 Конструкторы и объекты
- 52 Конструкторы и параметры
- 54 Деструктор
- 55 Конструкторы и константы
- 57 Константы в классе
- 58 Инициализация константных полей
- 61 Резюме
- 61 Контрольные вопросы
- 62 Упражнения
- 45 Определение конструктора
- 65 Глава 3. Перегрузка операций
- 68 Перегрузка операций внешними функциями
- 70 Перегрузка операций методами класса
- 76 "Подводные камни" перегрузки операций
- 78 Функции-друзья класса
- 81 Преобразование типов
- 82 Преобразование типов и конструкторы
- 84 Функции-операции преобразования
- 86 Запрет неявных преобразований
- 86 Классы-оболочки встроенных типов
- 87 Резюме
- 88 Контрольные вопросы
- 89 Упражнения
- 91 Глава 4. Массивы и классы
- 91 Поля-массивы в классе
- 94 Реализация простого класса строк
- 106 Статические поля-массивы
- 109 Статические элементы класса
- 114 Резюме
- 114 Контрольные вопросы
- 115 Упражнения
- 91 Поля-массивы в классе
- 117 Глава 5. Динамическая память в C++
- 117 Память и объекты
- 118 Управление динамической памятью
- 120 Двухмерный динамический массив
- 121 POD-типы
- 122 NonPOD-типы
- 124 Еще одна форма операции new
- 124 Размеры динамических объектов
- 126 "Умный" массив
- 128 Конструкторы
- 131 Деструктор
- 132 Операция индексирования
- 133 Копирование и присваивание
- 138 Реализация методов
- 140 Использование "умного" массива
- 142 Резюме
- 143 Контрольные вопросы
- 144 Упражнения
- 146 Глава 6. Контейнеры
- 146 Характеристики контейнеров
- 147 Доступ к элементам контейнера
- 149 Операции с контейнером
- 151 Реализация контейнеров
- 152 Последовательный контейнер
- 153 Вложенные классы
- 155 Итератор для последовательного контейнера
- 157 Реализация контейнера-дека
- 163 Стек
- 166 Проблема универсальности
- 168 Резюме
- 168 Контрольные вопросы
- 169 Упражнения
- 146 Характеристики контейнеров
- 171 Глава 7. Исключения
- 172 Принципы обработки исключений
- 172 Генерация исключений
- 173 Перехват и обработка исключений
- 177 Спецификация исключений
- 178 Применение исключений
- 181 Передача информации в блок обработки
- 182 Классы и исключения
- 187 Исключения в списке инициализации конструктора
- 189 Исключения и деструкторы
- 193 Стандартные исключения
- 196 Подмена функций стандартного завершения
- 198 Нестандартные исключения
- 203 Резюме
- 203 Контрольные вопросы
- 205 Упражнения
- 172 Принципы обработки исключений
- 207 Глава 8. Наследование
- 209 Простое наследование
- 210 Простое открытое наследование
- 212 Конструкторы, деструкторы и наследование
- 215 Поля и методы при наследовании
- 217 Вложенные классы и наследование
- 218 Принцип подстановки
- 221 Применение открытого наследования
- 223 Закрытое наследование
- 227 Резюме
- 227 Контрольные вопросы
- 228 Упражнения
- 230 Глава 9. Виртуальные функции
- 230 Зачем нужны виртуальные функции
- 233 Определение виртуальных функций
- 234 Переопределение и перегрузка виртуальных функций
- 237 Размеры классов с виртуальными функциями
- 238 Виртуальные функции в конструкторах и деструкторах
- 239 Чистые виртуальные функции
- 242 Виртуальные деструкторы
- 243 Чистые виртуальные деструкторы
- 245 Однокоренная иерархия
- 247 Виртуализация внешних функций
- 249 Немного философии
- 250 Резюме
- 251 Контрольные вопросы
- 252 Упражнения
- 253 Глава 10. Множественное наследование и RTTI
- 254 Множественное наследование
- 256 Неоднозначность
- 257 Виртуальное наследование
- 259 Принцип доминирования
- 260 Финальный класс
- 261 Размеры классов при множественном наследовании
- 262 RTTI
- 268 Мультиметоды
- 269 Использование RTTI
- 271 Использование только виртуальных функций
- 276 Резюме
- 276 Контрольные вопросы
- 277 Упражнения
- 254 Множественное наследование
- 278 Глава 11. Шаблоны классов
- 279 Первое знакомство
- 283 Определение шаблона класса
- 284 Внешнее определение методов
- 286 Параметры шаблона - не типы
- 288 Инициализация нулем
- 289 Параметры шаблона по умолчанию
- 290 Специализация
- 293 Шаблоны и... шаблоны
- 293 Поле-шаблон
- 294 Параметр-шаблон
- 296 Метод-шаблон
- 299 Шаблоны и наследование
- 302 Шаблоны и дружественность
- 304 Резюме
- 304 Контрольные вопросы
- 305 Упражнения
- 307 Глава 12. Шаблоны функций
- 307 Определение шаблона функции
- 311 Параметры по умолчанию
- 312 Параметры шаблона - не типы
- 312 Перегрузка шаблонов функций
- 313 Специализация шаблонов функций
- 314 Реализация обобщенных алгоритмов
- 318 Указатели на функции и указатели на методы
- 322 Понятие функтора
- 326 Адаптеры функторов
- 330 Адаптер для указателя на метод
- 333 Резюме
- 334 Контрольные вопросы
- 334 Упражнения
- 307 Определение шаблона функции
- 336 Глава 13. Программы и модули
- 337 Сборка исходных текстов
- 339 "Стражи" включения
- 342 Системные включаемые файлы
- 343 Отделение интерфейса от реализации
- 346 Шаблоны и модули
- 348 Модель включения
- 349 Явное инстанцирование
- 350 Межмодульное взаимодействие
- 351 Межмодульные переменные и функции
- 352 Локализация имен в модуле
- 355 Альтернативные спецификации компоновки
- 355 Инициализация глобальных объектов
- 359 Статические элементы в шаблонах
- 363 Пространства имен
- 364 Именованные пространства имен
- 369 Неименованные пространства имен
- 370 Резюме
- 371 Контрольные вопросы
- 372 Упражнения
- 337 Сборка исходных текстов
- 373 Глава 14. Библиотека ввода-вывода
- 374 Иерархия классов
- 375 Принципы организации потоков
- 377 Стандартные потоки
- 378 Вывод элементарных типов и строк
- 380 Ввод элементарных типов
- 382 Ввод строк
- 384 Состояния потока
- 386 Состояние потока и логические условия
- 388 Состояние потока и исключения
- 389 Работа с файлами
- 392 Текстовые файлы
- 394 Пример обработки текстовых файлов
- 398 Режимы открытия потоков (файлов)
- 399 Двоичные файлы
- 403 Ввод-вывод объектов в двоичный файл
- 404 Сериализация
- 407 Форматирование ввода-вывода
- 408 Флаги форматирования
- 409 Методы форматирования
- 410 Манипуляторы
- 412 Форматированный ввод
- 413 Написание собственных манипуляторов
- 415 Применение средств форматирования
- 417 Строковые потоки
- 420 Перегрузка операций ввода-вывода
- 425 Произвольный доступ
- 428 Буферизация
- 429 Широкие потоки
- 430 Ввод и вывод широких символов
- 431 Кириллица и локальный контекст
- 433 Широкие строковые потоки
- 434 Широкие файловые потоки
- 436 Резюме
- 437 Контрольные вопросы
- 439 Упражнения
- 441 Приложение. Строки в C++
- 441 Обработка строк в стиле С
- 443 Функции для работы с массивами типа char[ ]
- 446 Функции для работы с массивами типа wchar_t[ ]
- 447 Строки в стиле C++
- 441 Обработка строк в стиле С
- 453 Литература
Инструкция как скачать книгу Лаптев В.В.: C++. Объектно-ориентированное программирование в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.