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 Упражнения
  • 65 Глава 3. Перегрузка операций
    • 68 Перегрузка операций внешними функциями
    • 70 Перегрузка операций методами класса
    • 76 "Подводные камни" перегрузки операций
    • 78 Функции-друзья класса
    • 81 Преобразование типов
      • 82 Преобразование типов и конструкторы
      • 84 Функции-операции преобразования
      • 86 Запрет неявных преобразований
      • 86 Классы-оболочки встроенных типов
    • 87 Резюме
    • 88 Контрольные вопросы
    • 89 Упражнения
  • 91 Глава 4. Массивы и классы
    • 91 Поля-массивы в классе
      • 94 Реализация простого класса строк
      • 106 Статические поля-массивы
    • 109 Статические элементы класса
    • 114 Резюме
    • 114 Контрольные вопросы
    • 115 Упражнения
  • 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 Упражнения
  • 171 Глава 7. Исключения
    • 172 Принципы обработки исключений
      • 172 Генерация исключений
      • 173 Перехват и обработка исключений
      • 177 Спецификация исключений
      • 178 Применение исключений
      • 181 Передача информации в блок обработки
    • 182 Классы и исключения
      • 187 Исключения в списке инициализации конструктора
      • 189 Исключения и деструкторы
    • 193 Стандартные исключения
    • 196 Подмена функций стандартного завершения
    • 198 Нестандартные исключения
    • 203 Резюме
    • 203 Контрольные вопросы
    • 205 Упражнения
  • 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 Упражнения
  • 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 Упражнения
  • 336 Глава 13. Программы и модули
    • 337 Сборка исходных текстов
      • 339 "Стражи" включения
      • 342 Системные включаемые файлы
    • 343 Отделение интерфейса от реализации
    • 346 Шаблоны и модули
      • 348 Модель включения
      • 349 Явное инстанцирование
    • 350 Межмодульное взаимодействие
      • 351 Межмодульные переменные и функции
      • 352 Локализация имен в модуле
      • 355 Альтернативные спецификации компоновки
      • 355 Инициализация глобальных объектов
      • 359 Статические элементы в шаблонах
    • 363 Пространства имен
      • 364 Именованные пространства имен
      • 369 Неименованные пространства имен
    • 370 Резюме
    • 371 Контрольные вопросы
    • 372 Упражнения
  • 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++
  • 453 Литература

Инструкция как скачать книгу Лаптев В.В.: C++. Объектно-ориентированное программирование в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
C++. Объектно-ориентированное программирование
Рейтинг книги:
0 голосов
506

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: