Объектно-ориентированное программирование в С++

Object-Oriented Programming in C++
Название в оригиналеObject-Oriented Programming in C++
ИздательствоПитер
Год издания2014
Страниц928
ПереплетТвердый переплет
ИзданиеЧетвертое издание
Формат70х100/16 (170х240 мм, увеличенный)
ISBN978-5-496-00353-7
ИзготовительООО «Питер Мейл». 198206, РФ, Санкт-Петербург г, Петергофское ш, д. 73, лит. А29
ИмпортерООО "Питер М", 220020, РБ, г. Минск, ул. Тимирязева, д.121, корп.3, к. 214

Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций.

Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам. Читатель может вообще не иметь подготовки в области языка С++. Необходимо лишь знание начальных основ программирования.

Содержание

  • Вступление
    • Предисловие
    • Введение
    • Новые концепции программирования
    • Объектно-ориентированное программирование
    • Унифицированный язык моделирования
    • Языки и платформы разработки
    • Для чего нужна эта книга
    • Новые концепции
    • Последовательность изложения материала
    • Знания, необходимые для чтения этой книги
    • Техническое и программное обеспечение
    • Консольные программы
    • Исходные тексты программ
    • Упражнения
    • Проще, чем кажется
    • Преподавателям
    • Стандартный C++
    • Унифицированный язык моделирования (UML)
    • Средства разработки программного обеспечения
    • Различия между C и C++
    • Оптимальный порядок изучения ООП
    • Нововведения в C++
    • Избыточные возможности
    • Упражнения
    • От издательства
  • Глава 1. Общие сведения
    • Для чего нужно объектно-ориентированное программирование?
    • Процедурные языки
    • Деление на функции
    • Недостатки структурного программирования
    • Неконтролируемый доступ к данным
    • Моделирование реального мира
    • Объектно-ориентированный подход
    • Аналогия
    • ООП: подход к организации программы
    • Характеристики объектно-ориентированных языков
    • Объекты
    • Классы
    • Наследование
    • Повторное использование кода
    • Пользовательские типы данных
    • Полиморфизм и перегрузка C++ и C
    • Изучение основ
    • Универсальный язык моделирования (UML)
    • Резюме
    • Вопросы
  • Глава 2. Основы программирования на C++
    • Что необходимо для работы
    • Структура программы
    • Функции
    • Операторы
    • Разделяющие знаки
    • Вывод с использованием cout
    • Строковые константы
    • Директивы
    • Директивы препроцессора
    • Заголовочные файлы
    • Директива using
    • Комментарии
    • Синтаксис комментариев
    • Использование комментариев
    • Альтернативный вид комментариев
    • Переменные целого типа
    • Описание переменных целого типа
    • Объявление и определение переменной
    • Имена переменных
    • Операция присваивания
    • Целые константы
    • Оператор вывода
    • Манипулятор endl
    • Другие целые типы
    • Символьные переменные
    • Символьные константы
    • Инициализация
    • Управляющие последовательности
    • Ввод с помощью cin
    • Определение переменных при первом использовании
    • Каскадирование операции <<
    • Выражения
    • Приоритеты выполнения операций
    • Вещественные типы
    • Тип float
    • Типы double и long double
    • Вещественные константы
    • Префикс const
    • Директива #define
    • Тип bool
    • Манипулятор setw
    • Каскадирование операции <<
    • Множественное определение
    • Файл заголовка IOMANIP
    • Таблица типов переменных
    • Беззнаковые типы данных
    • Преобразования типов
    • Неявные преобразования типов
    • Явные преобразования типов
    • Арифметические операции
    • Остаток от деления
    • Арифметические операции с присваиванием
    • Инкремент
    • Декремент
    • Библиотечные функции
    • Заголовочные файлы
    • Библиотечные файлы
    • Заголовочные и библиотечные файлы
    • Формы директивы #include
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 3. Циклы и ветвления
    • Операции отношения
    • Циклы
    • Цикл for
    • Инициализирующее выражение
    • Условие выполнения цикла
    • Инкрементирующее выражение
    • Число выполнений цикла
    • Несколько операторов в теле цикла
    • Блоки и область видимости переменных
    • Форматирование и стиль оформления циклов
    • Обнаружение ошибок
    • Варианты цикла for
    • Определение счетчика цикла внутри оператора цикла for
    • Несколько инициализирующих выражений и условий цикла
    • Цикл while
    • Несколько операторов в цикле while
    • Приоритеты арифметических операций и операций отношения
    • Цикл do
    • Выбор типа цикла
    • Ветвления
    • Условный оператор if
    • Несколько операторов в теле if
    • if внутри циклов
    • Функция exit()
    • Оператор if╪else
    • Функция getche()
    • Условия с присваиванием
    • Вложенные ветвления if...else
    • if и else во вложенных ветвлениях
    • Конструкция else...if
    • Оператор switch
    • Оператор break switch и символьные переменные
    • Ключевое слово default
    • Сравнение switch и if...else
    • Условная операция
    • Логические операции
    • Операция логического И
    • Логическое ИЛИ
    • Логическое НЕ
    • Целые величины в качестве булевых
    • Приоритеты операций C++
    • Другие операторы перехода
    • Оператор break
    • Расширенная таблица символов ASCII
    • Оператор continue
    • Оператор goto
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 4. Структуры
    • Структуры
    • Простая структура
    • Определение структуры
    • Определение структурной переменной
    • Доступ к полям структуры
    • Другие возможности структур
    • Пример применения структур
    • Вложенные структуры
    • Пример карточной игры
    • Структуры и классы
    • Перечисления
    • Дни недели
    • Перечисления и программа подсчета числа слов
    • Пример карточной игры
    • Недостаток перечислений
    • Примеры перечисляемых типов
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 5. Функции
    • Простые функции
    • Объявление функции
    • Вызов функции
    • Определение функции
    • Обычные и библиотечные функции
    • Отсутствие объявления
    • Передача аргументов в функцию
    • Передача констант в функцию
    • Передача значений переменных в функцию
    • Передача аргументов по значению
    • Структурные переменные в качестве аргументов
    • Имена переменных внутри прототипа функции
    • Значение, возвращаемое функцией
    • Оператор return
    • Исключение ненужных переменных
    • Структурная переменная в качестве возвращаемого значения
    • Ссылки на аргументы
    • Передача по ссылке аргументов стандартных типов
    • Усложненный вариант передачи по ссылке
    • Передача структурных переменных по ссылке
    • Замечание о ссылках
    • Перегруженные функции
    • Переменное число аргументов функции
    • Различные типы аргументов
    • Рекурсия
    • Встраиваемые функции
    • Аргументы по умолчанию
    • Область видимости и класс памяти
    • Локальные переменные
    • Глобальные переменные
    • Статические локальные переменные
    • Возвращение значения по ссылке
    • Вызов функции в качестве левого операнда операции присваивания
    • Зачем нужно возвращение по ссылке?
    • Константные аргументы функции
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 6. Объекты и классы
    • Простой класс
    • Классы и объекты
    • Определение класса
    • Использование класса
    • Вызов методов класса
    • Объекты программы и объекты реального мира
    • Детали изделия в качестве объектов
    • Круги в качестве объектов
    • Класс как тип данных
    • Конструкторы
    • Пример со счетчиком
    • Графический пример
    • Объекты в качестве аргументов функций
    • Объекты в качестве аргументов
    • Конструктор копирования по умолчанию
    • Объекты, возвращаемые функцией
    • Аргументы и объекты
    • Пример карточной игры
    • Структуры и классы
    • Классы, объекты и память
    • Статические данные класса
    • Применение статических полей класса
    • Пример использования статических полей класса
    • Раздельное объявление и определение полей класса
    • сonst и классы
    • Константные методы
    • Константные объекты
    • Зачем нужны классы?
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 7. Массивы и строки
    • Основы массивов
    • Определение массивов
    • Элементы массива
    • Доступ к элементам массива
    • Среднее арифметическое элементов массива
    • Инициализация массива
      • Многомерные массивы
    • Передача массивов в функции
    • Массивы структур
    • Массивы как члены классов
    • Массивы объектов
    • Массивы интервалов
    • Границы массива
    • Доступ к объектам в массиве
    • Массивы карт
    • Строки
    • Строковые переменные
    • Считывание нескольких строк
    • Копирование строк
    • Копирование строк более простым способом
    • Массивы строк
    • Строки как члены классов
    • Определенные пользователем типы строк
    • Стандартный класс string языка C++
    • Определение объектов класса string и присваивание им значений
    • Ввод/вывод для объектов класса string
    • Поиск объектов класса string
    • Модификация объектов класса string
    • Сравнение объектов класса string
    • Доступ к символам в объектах класса string
    • Другие методы класса string
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 8. Перегрузка операций
    • Перегрузка унарных операций
    • Ключевое слово operator
    • Аргументы операции
    • Значения, возвращаемые операцией
    • Временные безымянные объекты
    • Постфиксные операции
    • Перегрузка бинарных операций
    • Арифметические операции
    • Объединение строк
    • Множественная перегрузка
    • Операции сравнения
    • Операции арифметического присваивания
    • Операция индексации массива ([])
    • Преобразование типов
    • Преобразования основных типов в основные типы
    • Преобразования объектов в основные типы и наоборот
    • Преобразования строк в объекты класса string и наоборот
    • Преобразования объектов классов в объекты других классов
    • Преобразования: когда что использовать
    • Диаграммы классов UML
    • Объединения
    • Направленность
    • `Подводные камни` перегрузки операций и преобразования типов
    • Использование похожих значений
    • Использование похожего синтаксиса
    • Показывайте ограничение
    • Избегайте неопределенности
    • Не все операции могут быть перегружены
    • Ключевые слова explicit и mutable
    • Предотвращение преобразования типов с помощью explicit
    • Изменение данных объекта, объявленных как const, используя ключевое слово mutable
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 9. Наследование
    • Базовый и производный классы
    • Определение производного класса
    • Обобщение в диаграммах классов в UML
    • Доступ к базовому классу
    • Результат программы COUNTEN
    • Спецификатор доступа protected
    • Недостатки использования спецификатора protected
    • Неизменность базового класса
    • Разнообразие терминов
    • Конструкторы производного класса
    • Перегрузка функций
    • Какой из методов использовать?
    • Операция разрешения и перегрузка функций
    • Наследование в классе Distance
    • Применение программы ENGLEN
    • Конструкторы класса DistSign
    • Методы класса DistSign
    • В поддержку наследования
    • Иерархия классов
    • Абстрактный базовый класс
    • Конструкторы и функции
    • Наследование и графика
    • Общее и частное наследование
    • Комбинации доступа
    • Выбор спецификатора доступа
    • Уровни наследования
    • Множественное наследование
    • Методы классов и множественное наследование
    • Частное наследование в программе EMPMULT
    • Конструкторы при множественном наследовании
    • Конструкторы без аргументов
    • Конструктор со многими аргументами
    • Неопределенность при множественном наследовании
    • Включение: классы в классах
    • Включение в программе EMPCONT
    • Композиция: сложное включение
    • Роль наследования при разработке программ
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 10. Указатели
    • Адреса и указатели
    • Операция получения адреса &
    • Переменные указатели
    • Недостатки синтаксиса
    • Указатели должны иметь значение
    • Доступ к переменной по указателю
    • Указатель на void
    • Указатели и массивы
    • Указатели-константы и указатели-переменные
    • Указатели и функции
    • Передача простой переменной
    • Передача массивов
    • Сортировка элементов массива
    • Расстановка с использованием указателей
    • Сортировка методом пузырька
    • Указатели на строки
    • Указатели на строковые константы
    • Строки как аргументы функций
    • Копирование строк с использованием указателей
    • Библиотека строковых функций
    • Модификатор const и указатели
    • Массивы указателей на строки
    • Управление памятью: операции new и delete
    • Операция new
    • Операция delete
    • Класс String с использованием операции new
    • Указатели на объекты
    • Ссылки на члены класса
    • Другое применение операции new
    • Массив указателей на объекты
    • Действия программы
    • Доступ к методам класса
    • Связный список
    • Цепочка указателей
    • Добавление новых элементов в список
    • Получение содержимого списка
    • Классы, содержащие сами себя
    • Пополнение примера LINKLIST
    • Указатели на указатели
    • Сортируем указатели
    • Тип данных person**
    • Сравнение строк
    • Пример разбора строки
    • Разбор арифметических выражений
    • Программа PARSE
    • Симулятор: лошадиные скачки
    • Разработка лошадиных скачек
    • Моделирование хода времени
    • Уничтожение массива указателей на объекты
    • Функция putch()
    • Диаграммы UML
    • Диаграмма состояний в UML
    • Состояния
    • Переходы
    • От состояния к состоянию
    • Отладка указателей
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 11. Виртуальные функции
    • Виртуальные функции
    • Доступ к обычным методам через указатели
    • Пегрузка оператора присваивания
    • Конструктор копирования
    • Объектные диаграммы UML
    • Эффективное использование памяти классом String
    • Указатель this
    • Доступ к компонентным данным через указатель this
    • Использование this для возврата значений
    • Исправленная программа STRIMEM
    • Динамическая информация о типах
    • Проверка типа класса с помощью dynamic_cast
    • Изменение типов указателей с помощью dynamic_cast
    • Оператор typeid
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 12. Потоки и файлы
    • Потоковые классы
    • Преимущества потоков
    • Иерархия потоковых классов
    • Класс ios
    • Класс istream
    • Класс ostream
    • Классы iostream и _withassign
    • Предопределенные потоковые объекты
    • Ошибки потоков
    • Биты статуса ошибки
    • Ввод чисел
    • Переизбыток символов
    • Ввод при отсутствии данных
    • Ввод строк и символов
    • Отладка примера с английскими расстояниями
    • Потоковый ввод/вывод дисковых файлов
    • Форматированный файловый ввод/вывод
    • Строки с пробелами
    • Ввод/вывод символов
    • Двоичный ввод/вывод
    • Оператор reinterpret_cast
    • Закрытие файлов
    • Объектный ввод/вывод
    • Совместимость структур данных
    • Ввод/вывод множества объектов
    • Биты режимов
    • Указатели файлов
    • Вычисление позиции
    • Вычисление сдвига
    • Функция tellg()
    • Обработка ошибок файлового ввода/вывода
    • Реагирование на ошибки
    • Анализ ошибок
    • Файловый ввод/вывод с помощью методов
    • Как объекты записывают и читают сами себя
    • Как классы записывают и читают сами себя
    • Код типа объекта
    • Перегрузка операторов извлечения и вставки
    • Перегрузка cout и cin
    • Перегрузка << и >> для файлов
    • Память как поток
    • Аргументы командной строки
    • Вывод на печатающее устройство
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 13. Многофайловые программы
    • Причины использования многофайловых программ
    • Библиотеки классов
    • Организация и концептуализация
    • Создание многофайловой программы
    • Заголовочные файлы
    • Директории
    • Проекты
    • Межфайловое взаимодействие
    • Взаимодействие исходных файлов
    • Заголовочные файлы
    • Пространства имен
    • Класс сверхбольших чисел
    • Числа как строки
    • Описатель класса
    • Методы
    • Прикладная программа
    • Моделирование высотного лифта
    • Работа программы ELEV
    • Проектирование системы
    • Листинг программы ELEV
    • Диаграмма состояний для программы ELEV
    • Резюме
    • Вопросы
    • Проекты
  • Глава 14. Шаблоны и исключения
    • Шаблоны функций
    • Шаблон простой функции
    • Шаблоны функций с несколькими аргументами
    • Шаблоны классов
    • Контекстозависимое имя класса
    • Создание класса связных списков с помощью шаблонов
    • Хранение пользовательских типов
    • UML и шаблоны
    • Исключения
    • Для чего нужны исключения
    • Синтаксис исключений
    • Простой пример исключения
    • Многократные исключения
    • Исключения и класс Distance
    • Исключения с аргументами
    • Класс bad_alloc
    • Размышления об исключениях
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 15. Стандартная библиотека шаблонов (STL)
    • Введение в STL
    • Контейнеры
    • Алгоритмы
    • Итераторы
    • Возможные проблемы с STL
    • Алгоритмы
    • Алгоритм find ()
    • Алгоритм count ()
    • Алгоритм sort()
    • Алгоритм search()
    • Алгоритм merge()
    • Функциональные объекты
    • Пользовательские функции вместо функциональных объектов
    • Добавление _if к аргументам
    • Алгоритм for_each ()
    • Алгоритм transform()
    • Последовательные контейнеры
    • Векторы
    • Списки
    • Итераторы
    • Итераторы как интеллектуальные указатели
    • Итераторы в качестве интерфейса
    • Соответствие алгоритмов контейнерам
    • Работа с итераторами
    • Специализированные итераторы
    • Адаптеры итераторов
    • Потоковые итераторы
    • Ассоциативные контейнеры
    • Множества и мультимножества
    • Отображения и мультиотображения
    • Ассоциативный массив
    • Хранение пользовательских объектов
    • Множество объектов person
    • Список объектов класса person
    • Функциональные объекты
    • Предопределенные функциональные объекты
    • Создание собственных функциональных объектов
    • Функциональные объекты и поведение контейнеров
    • Резюме
    • Вопросы
    • Упражнения
  • Глава 16. Разработка объектно-ориентированного ПО
    • Эволюция процесса создания программного обеспечения
    • Процесс просиживания штанов
    • Каскадный процесс
    • Объектно-ориентированное программирование
    • Современные подходы
    • Моделирование вариантов использования
    • Действующие субъекты
    • Варианты использования
    • Сценарии
    • Диаграммы вариантов использования
    • Описания вариантов использования
    • От вариантов использования к классам
    • Предметная область программирования
    • Рукописные формы
    • Допущения
    • Программа LANDLORD: стадия развития
    • Действующие субъекты
    • Варианты использования
    • Описание вариантов использования
    • Сценарии
    • Диаграммы действий UML
    • От вариантов использования к классам
    • Список существительных
    • Уточнение списка
    • Определение атрибутов
    • От глаголов к сообщениям
    • Диаграмма классов
    • Диаграммы последовательностей
    • Написание кода
    • Заголовочный файл
    • Исходные .cpp файлы
    • Вынужденные упрощения
    • Взаимодействие с программой
    • Заключение
    • Резюме
    • Вопросы
    • Проекты
  • Приложение А. Таблица ASCII
  • Приложение Б. Таблица приоритетов операций C++
    • Таблица приоритетов операций
    • Зарезервированные слова
  • Приложение В. Microsoft Visual C++
    • Элементы экрана
    • Однофайловые программы Компоновка существующего файла
    • Создание нового файла
    • Ошибки
    • Информация о типах в процессе исполнения (RTTI)
    • Многофайловые программы
    • Проекты и рабочие области
    • Работа над проектом
    • Сохранение, закрытие и открытие проектов
    • Компиляция и компоновка
    • Программы с консольной графикой
    • Отладка программ
    • Пошаговая трассировка
    • Просмотр переменных
    • Пошаговая трассировка функций
    • Точки останова
  • Приложение Г. Borland C++ Builder
    • Запуск примеров в C++ Builder
    • Очистка экрана
    • Создание нового проекта
    • Задание имени и сохранение проекта
    • Работа с существующими файлами
    • Компиляция, связывание и запуск программ
    • Запуск программы в C++ Builder
    • Запуск программы в MS DOS
    • Предварительно скомпилированные заголовочные файлы
    • Закрытие и открытие проектов
    • Добавление заголовочного файла к проекту
    • Создание нового заголовочного файла
    • Редактирование заголовочного файла
    • Определение местонахождения заголовочного файла
    • Проекты с несколькими исходными файлами
    • Создание дополнительных исходных файлов
    • Добавление существующих исходных файлов
    • Менеджер проектов
    • Программы с консольной графикой
    • Отладка
    • Пошаговый прогон
    • Просмотр переменных
    • Пошаговая трассировка функций
    • Точки останова
  • Приложение Д. Упрощенный вариант консольной графики
    • Использование подпрограмм библиотеки консольной графики
    • Функции библиотеки консольной графики
    • Реализация функций консольной графики
    • Компиляторы Microsoft
    • Компиляторы Borland
    • Листинги исходных кодов
  • Приложение Е. Алгоритмы и методы STL
    • Алгоритмы
    • Методы
    • Итераторы
  • Приложение Ж. Ответы и решения
    • Глава 1
    • Глава 2
    • Глава 3
    • Глава 4
    • Глава 5
    • Глава 6
    • Глава 7
    • Глава 8
    • Глава 9
    • Глава 10
    • Глава 11
    • Глава 12
    • Глава 13
    • Глава 14
    • Глава 15
    • Глава 16
  • Приложение З. Библиография
    • Углубленное изучение С++
    • Основополагающие документы
    • UML
    • История С++
    • И другое
  • Алфавитный указатель

Кадры Все 21

Похожие лоты

Вход

В течение нескольких секунд вам придёт SMS с одноразовым кодом для входа. Если ничего не пришло — отправьте код ещё раз.
Это бесплатно, безопасно и займёт всего несколько секунд
Войдите с помощью своего профиля

Регистрация

Введите номер вашего мобильного телефона:
Войдите с помощью электронной почты или номера телефона
Войдите с помощью своего профиля

Восстановление пароля

Укажите адрес электронной почты, который вы использовали при регистрации
Нужна помощь? Напишите нам

Восстановление пароля

Инструкции по восстановлению пароля высланы на 
Нужна помощь? Напишите нам