- Книги автора
- ожидают 6 человек
- На аукционах Ay.by
- ожидают 4 человека
- Книги издательства
- ожидают 96 человек
- Книги серии
- ожидают 7 человек
Скидка «Неделя «Питер» на OZ.by»
Ваша скидка: 15% Цена: 265 279 225 487 руб.
Срок поставки: 1 — 3 дня
Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 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
- История С++
- И другое
- Алфавитный указатель
<p>Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам. Читатель может вообще не иметь подготовки в области языка С++. Необходимо лишь знание начальных основ программирования.</p>
Р. Лафоре
Книги > Компьютеры и Интернет > Языки программирования > C, C++, C# > C/C++
isbn:978-5-4237-0038-6
225487
BYR
in stock
Объектно-ориентированное программирование в С++
8.60
10
0
20
Берите не глядя. И лучше сразу две - толкнете лучшему другу. А то расскупается очень быстро, а потом друзья будут достават: "Откуда такая рульная книженция?") Крепкий орешек С здесь разжевом даже не на мелкий кусочки - на атомы. Изложение совсем не нудное, читать интересно. К тому же большая пачка упражнений поможет качественно закрепить знания. Можно пожурить лишь за мелкий ошибки в тексте и иллюстрациях. Но они совсем не напрягают. В общем - самая дружественная к читателю книга по с .
Slaveen редактировал отзыв 18 февраля 2010
Книга супер! За пару месяцев, проведенных с ней, реально понять суть С++, чемута научится. Советую всем чайникаи для начала программистской деятельности.
книга хорошая
Книга несомненно хорошая, никто не поспорит...
Достоинства:
Очень доступный язык изложения материала.
Переводчики постарались на славу.
Недостатки:
Ну очень подробная книга...