RUSSIAN

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

Book information

Publisher
Питер
Year
2011
Language
russian
Format
PDF
Filesize
6 MB (6746782 bytes)
Series
Классика Computer Science
Edition
4-е изд.
Pages
923 с.\924
Time added
2020-09-04 07:25:10

Description

Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования в C++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры Предисловие Введение Новые концепции программирования Объектно-ориентированное программирование Унифицированный язык моделирования Языки и платформы разработки Для чего нужна эта книга Новые концепции Последовательность изложения материала Знания необходимые для чтения этой книги Техническое и программное обеспечение Консольные программы Исходные тексты программ Упражнения Проще чем кажется Преподавателям Стандартный C++ Унифицированный язык моделирования (UML) Средства разработки программного обеспечения Различия между С и C++ Оптимальный порядок изучения ООП Нововведения в C++ Избыточные возможности Упражнения От издательства Глава 1. Общие сведения Для чего нужно объектно-ориентированное программирование? Процедурные языки Деление на функции Недостатки структурного программирования Неконтролируемый доступ к данным Моделирование реального мира Объектно-ориентированный подход Аналогия ООП: подход к организации программы Характеристики объектно-ориентированных языков Объекты Классы Наследование Повторное использование кода Пользовательские типы данных Полиморфизм и перегрузка 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. Объекты и классы Простой класс Классы и объекты Определение класса Использование класса Вызов методов класса Объекты программы и объекты реального мира Детали изделия в качестве объектов KDvrn в качестве объектов Класс как тип данных Конструкторы Пример со счетчиком Графический пример Объекты в качестве аргументов функций Объекты в качестве аргументов Конструктор копирования по умолчанию Объекты возвращаемые функцией Аргументы и объекты Пример карточной игры Структуры и классы Классы объекты и память Статические данные класса Применение статических полей класса Пример использования статических полей класса Раздельное объявление и определение полей класса const и классы Константные методы Константные объекты Зачем нужны классы? Резюме Вопросы Упражнения Глава 7. Массивы и строки Основы массивов Определение массивов Элементы массива Доступ к элементам массива Среднее арифметическое элементов массива Инициализация массива Многомерные массивы Передача массивов в функции Массивы структур Массивы как члены классов Массивы объектов Массивы интервалов Границы массива Доступ к объектам в массиве Массивы карт Строки Строковые переменные Считывание нескольких строк Копирование строк Копирование строк более простым способом Массивы строк Строки как члены классов Определенные пользователем типы строк Стандаотный класс strina языка 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. Виртуальные функции Виртуальные функции Доступ к обычным методам через указатели Доступ к виртуальным методам через указатели Позднее связывание Абстрактные классы и чистые виртуальные функции Виртуальные функции и класс person Виртуальные функции в графическом примере Виртуальные деструкторы Виртуальные базовые классы Дружественные функции Дружественные функции как мосты между классами Ломая стены Пример с английскими мерами длины Дружественность и функциональная запись Дружественные классы Статические функции Доступ к статическим функциям Инициализация копирования и присваивания Перегрузка оператора присваивания Конструктор копирования Объектные диаграммы UML Эффективное использование памяти классом String Указатель this Доступ к компонентным данным через указатель this Использование this для возврата значений Исправленная программа STRIMEM Динамическая информация о типах Проверка типа класса с помощью dynamiccast Изменение типов указателей с помощью dynamiccast Оператор typeid Резюме Вопросы Упражнения Глава 12. Потоки и файлы Потоковые классы Преимущества потоков Иерархия потоковых классов Класс ios Класс istream Класс ostream Классы iostream и withassign Поедопоеделенные потоковые объекты Ошибки потоков Биты статуса ошибки Ввод чисел Переизбыток символов Ввод при отсутствии данных Ввод строк и символов Отладка примера с английскими расстояниями Потоковый ввод/вывод дисковых файлов Форматированный файловый ввод/вывод Строки с пробелами Ввод/вывод символов Двоичный ввод/вывод Оператор reinterpretcast Закрытие файлов Объектный ввод/вывод Совместимость структур данных Ввод/вывод множества объектов Биты режимов Указатели файлов Вычисление позиции Вычисление сдвига Функция tellg() Обработка ошибок файлового ввода/вывода Реагирование на ошибки Анализ ошибок Файловый ввод/вывод с помощью методов Как объекты записывают и читают сами себя Как классы записывают и читают сами себя Код типа объекта Перегрузка операторов извлечения и вставки Перегрузка cout и cin Перегрузка « и » для файлов Память как поток Аргументы командной строки Вывод на печатающее устройство Резюме Вопросы Упражнения Глава 13. Многофайловые программы Причины использования многофайловых программ Библиотеки классов Организация и концептуализация Создание многофайловой программы Заголовочные файлы Директории Проекты Межфайловое взаимодействие Взаимодействие исходных Файлов Заголовочные файлы Пространства имен Класс сверхбольших чисел Числа как строки Описатель класса Методы Прикладная программа Моделирование высотного лифта Работа программы ELEV Проектирование системы Листинг программы ELEV Диаграмма состояний для программы ELEV Резюме Вопросы Проекты Глава 14. Шаблоны и исключения Шаблоны функций Шаблон простой функции Шаблоны функций с несколькими аргументами Шаблоны классов Контекстозависимое имя класса Создание класса связных списков с помощью шаблонов Хранение пользовательских типов UML и шаблоны Исключения Для чего нужны исключения Синтаксис исключений Простой пример исключения Многократные исключения Исключения и класс Distance Исключения с аргументами Класс badalloc Размышления об исключениях Резюме Вопросы Упражнения Глава 15. Стандартная библиотека шаблонов (STL) Введение в STL Контейнеры Алгоритмы Итераторы Возможные проблемы с STL Алгоритмы Алгоритм find () Алгоритм count () Алгоритм sort() Алгооитм searchO Содержание Алгоритм merge() Функциональные объекты Пользовательские функции вместо функциональных объектов Добавление if к аргументам Алгоритм foreach () Алгоритм transform() Последовательные контейнеры Векторы Списки Итераторы Итераторы как интеллектуальные указатели Итераторы в качестве интерфейса Соответствие алгоритмов контейнерам Работа с итераторами Специализированные итераторы Адаптеры итераторов Потоковые итераторы Ассоциативные контейнеры Множества и мультимножества Отображения и мультиотображения Ассоциативный массив Хранение пользовательских объектов Множество объектов person Список объектов класса person Функциональные объекты Предопределенные функциональные объекты Создание собственных функциональных объектов Функциональные объекты и поведение контейнеров Резюме Вопросы Упражнения Глава 16. Разработка объектно-ориентированного ПО Эволюция процесса создания программного обеспечения Процесс просиживания штанов Каскадный процесс Объектно-ориентированное программирование Современные подходы Моделирование вариантов использования Действующие субъекты Варианты использования Сценарии Диаграммы вариантов использования Описания вариантов использования От вариантов использования к классам Предметная область программирования Рукописные формы Допущения Программа LANDLORD: стадия развития Действующие субъекты Варианты использования Описание вариантов использования Сценарии Диаграммы действий UML От вариантов использования к классам Список существительных Уточнение списка Определение атрибутов От глаголов к сообщениям Диаграмма классов Диаграммы последовательностей Написание кода Заголовочный файл Исходные .срр файлы Вынужденные упрощения Взаимодействие с программой Заключение Резюме Вопросы Проекты Приложение А. Таблица 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 Приложение 3. Библиография Углубленное изучение C++ Основополагающие документы UML История C++ И другое Алфавитный указатель

Similar books

Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique

2025 · PDF

Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная

2022 · PDF

Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание

2021 · PDF

Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)

2022 · PDF

Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)

2023 · PDF

Управление объектами интеллектуальной собственности. Искусство изобретать: учебник для обучающихся по направлениям подготовки 23.00.00 , направлениям подготовки 23.03.01 "Технология транспортных процессов", уровень образования-"бакалавриат", 23.03.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования-"бакалавриат", 23.04.01 "Технология транспортных процессов", уровень образования- "магистратура", 23.04.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования- "магистратура"

2022 · PDF

Философия. Учебно-методический комплекс дисциплины по направлениям подготовки: 51.03.03 (071800.62) «Социально-культурная деятельность», профили подготовки: «Социально-культурные технологии в индустрии досуга», «Менеджмент социально-культурной деятельности», «Менеджмент детско-юношеского досуга», «Постановка и продюсирование культурно-досуговых программ», «Социально-культурная анимация и рекреация»; 38.03.02 (080200.62) «Менеджмент», профили подготовки: «Управление человеческими ресурсами», «Управление малым бизнесом», квалификации (степень) выпускника – «бакалавр»

2014 · PDF