С++ для начинающих — Книга известного американского специалиста и популяризатора языков программирования, посвященная основам языка С++. Начиная с таких базовых понятий языка> как типы данных, массивы, строки,указатели и функции, книга охватывает также важнейшие элементы объёктно-ориентированного программирования - классы и объекты, наследование,' виртуальные функции, потоки ввода--вывода, исключения и шаблоны. Каждый раздел сопровождается простыми и наглядными примерами, дозволяющими получить практические навыки современного программирования. Книга предназначена для приступающих к изучению языка С++ -одного из самых универсальных и распространенных на сегодня языков программирования.
Название: C++ для начинающих Автор: Шилдт Герберт Издательство: Знание Год: 2013 Страниц: 640 Формат: DJVU, PDF Размер: 41,49 МБ Качество: Отличное Серия: Шаг за шагом
Содержание:
Выходные данные От переводчика Предисловие МОДУЛЬ 1. Основы C++ Краткая история C++ Потребность в C++ C++ родился Эволюция C++ Как C++ соотносится с языками Java и C# Объектно-ориентированное программирование Инкапсуляция Полиморфизм Наследование Первая простая программа Ввод программы Компиляция программы Запуск программы Первый программный пример строка за строкой Обработка синтаксических ошибок Вторая простая программа Использование операторов Ввод с клавиатуры Некоторые дополнительные возможности вывода Еще один тип данных Проект 1 -1: Преобразование футов в метры Два управляющих предложения Предложение if Цикл for Использование программных блоков Знак точки с запятой и позиционирование Практика использования отступов Проект 1-2: Создание таблицы преобразования футов в метры Знакомимся с функциями Библиотеки C++ Ключевые слова C++ Идентификаторы Вопросы для самопроверки МОДУЛЬ 2. Знакомимся с данными, типами и операторами Почему так важны типы данных Типы данных C++ Целые числа Символы Типы данных с плавающей точкой Булев тип данных Тип void Проект 2-1: Разговор с Марсом Литералы Шестнадцатеричные и восьмеричные литералы Строковые литералы Символьные Esc-последовательности Подробнее о переменных Инициализация переменной Динамическая инициализация Операторы Арифметические операторы Инкремент и декремент Операторы отношения (сравнения) и логические Проект 2-2: Конструирование логической операции исключающее ИЛИ Оператор присваивания Составные присваивания Преобразование типов в операциях присваивания Выражения Преобразование типа в выражениях Приведение типа Пробелы и скобки Проект 2-3: Вычисление регулярных платежей по ссуде Вопросы для самопроверки МОДУЛЬ. 3. Предложения управления программой Предложение if Условные выражения Вложенные предложения if Цепочка if-else-if Предложение switch Вложенные предложения switch Проект 3-1: Начинаем строить справочную систему C++ Цикл for Некоторые варианты цикла for Опущенные секции Бесконечный цикл for Цикл с отсутствующим телом Объявление переменных управления циклом внутри цикла for Цикл while Цикл do-while Проект 3-2: Усовершенствование справочной системы C++ Использование break для выхода из цикла Использование continue Проект 3-3: Завершаем разработку справочной системы C++ Вложенные циклы Использование предложения goto Вопросы для самопроверки МОДУЛЬ 4. Массивы, строки и указатели Одномерные массивы Границы не проверяются! Двумерные массивы Многомерные массивы Проект 4-1: Упорядочение массива Строки Основы техники строк Ввод строки с клавиатуры Некоторые библиотечные функции обработки строк strcpy() strcat() strcmp() strlen() Пример обработки строк Использование завершающего нуля Инициализация массивов Инициализация массивов неопределенной длины Массивы строк Указатели Что такое указатели? Операторы указателей Базовый тип указателя имеет большое значение Операции присваивания посредством указателя Выражения с указателями Арифметика указателей Сравнение указателей Указатели и массивы Индексация указателя Строковые константы Проект 4-2: Переворачивание строки Массивы указателей Соглашение о нулевом указателе Указатель на указатель Вопросы для самопроверки МОДУЛЬ 5. Введение в функции Основы функций Общая форма определения функции Создание функции Использование аргументов Использование предложения return Возвращаемые значения Использование функций в выражениях Правила видимости Локальная область видимости Глобальная область видимости Передача в функции указателей и массивов Передача указателя Передача массива Передача строк Возврат указателей Функция main() argc и argv: аргументы функции main() Передача числовых аргументов командной строки Прототипы функций Заголовки содержат прототипы Рекурсия Проект 5-1: Быстрое упорядочение Вопросы для самопроверки МОДУЛЬ 6. Подробнее о функциях Два подхода к передаче аргументов Как C++ передает аргументы Использование указателя для создания вызова по ссылке Параметры-ссылки Возврат ссылок Независимые ссылочные переменные Несколько ограничений при использовании ссылочных пере менных Перегрузка функций Автоматическое преобразование типов и перегрузка Проект 6-1: Создание перегруженных функций для вывода на экран Аргументы функций с инициализацией по умолчанию Аргументы с инициализацией по умолчанию или перегрузка? Правильное использование аргументов с инициализацией по умолчанию МОДУЛЬ 7. Подробнее о типах данных и операторах Описатели const и volatile const volatile Описатели классов памяти auto extern Статические переменные Регистровые переменные Перечислимые типы typedef Побитовые операторы Операторы И, ИЛИ, исключающее ИЛИ и НЕ Операторы сдвига Проект 7-1: Создание функций циклического побитового сдвига Оператор? Оператор-запятая Множественное присваивание Составное присваивание Использование оператора sizeof Обзор относительных приоритетов Вопросы для самопроверки МОДУЛЬ 8. Классы и объекты Основы классов Общая форма класса Определение класса и создание оъектов Добавление в класс функций-членов Проект 8-1: Создание класса справочника Конструкторы и деструкторы Параметрические конструкторы Добавление конструктора в класс Vehicle Другой способ инициализации Встроенные функции Создание встроенных функций внутри класса Проект 8-2: Создание класса очереди Массивы объектов Инициализация массивов объектов Указатели на объекты Ссылки на объекты Вопросы для самопроверки МОДУЛЬ 9. Подробнее о классах Перегрузка конструкторов Присваивание объектов Передача объектов функциям Конструкторы, деструкторы и передача объектов Передача объектов по ссылке Потенциальные проблемы при передаче объектов Возврат объектов Создание и использование конструктора копий Дружественные функции Структуры и объединения Структуры Объединения Ключевое слово this Перегрузка операторов Перегрузка операторов с использованием функций-членов Другие вопросы Использование функций-членов для перегрузки унарных операторов Операторные функции-не члены Использование дружественной функции для перегрузки унарного оператора Советы и ограничения при перегрузке операторов Проект 9-1: Создание класса, определяющего множество Вопросы для самопроверки МОДУЛЬ 10. Наследование, виртуальные функции и полиморфизм Основы наследования Доступ к членам и наследование Управление доступом к базовому классу Использование защищенных членов Конструкторы и наследование Вызов конструктора базового класса Проект 10-1: Расширение класса Vehicle Создание многоуровневой иерархии классов Наследование от нескольких базовых классов Когда выполняются функции конструктора и деструктора Указатели на производные классы Ссылки на производные типы Виртуальные функции и полиморфизм Основы виртуальных функций Виртуальные функции наследуются Зачем нужны виртуальные функции? Приложение виртуальных функций МОДУЛЬ 11. C++ и система ввода-вывода Старая и новая системы ввода-вывода Потоки C++ Предопределенные потоки C++ Потоковые классы C++ Перегрузка операторов ввода-вывода Создание операторных функций вывода Использование дружественных функций для перегрузки операторов вывода Перегрузка операторов ввода Использование манипуляторов ввода-вывода Создание собственных манипуляторных функций Файловый ввод-вывод Открытие и закрытие файла Чтение и запись текстовых файлов Неформатированный и двоичный ввод-вывод Чтение и запись блоков данных Больше о функция ввода-вывода Другие варианты get() getline() Обнаружение символа EOF peek() и putback() flush() Проект 11-1: Утилита сравнения файлов Произвольный доступ Определение состояния ввода-вывода Вопросы для самопроверки МОДУЛЬ 12. Исключения, шаблоны и другие дополнительные темы Обработка исключений Основы обработки исключений Использование группы предложений catch Улавливание всех исключений Задание исключений, выбрасываемых функцией Вторичное выбрасывание исключения Шаблоны Родовые функции Функция с двумя родовыми типами Явная перегрузка родовых функций Родовые классы Явные специализации класса Проект 12-1: Создание родового класса очереди Динамическое выделение памяти Инициализация выделенной памяти Выделение памяти под массивы Выделение памяти под объекты Пространства имен Основы использования пространств имен Предложение using Безымянные пространства имен Пространство имен std Статические члены классов Статические переменные-члены Статические функции-члены Динамическая идентификация типов (RTTI) Операторы приведения типа dynamic_cast const_cast static_cast reinterpret_cast Что дальше? Вопросы для самопроверки Приложение А. Ответы на Вопросы для самопроверки Приложение В. Препроцессор #define Макросы, подобные функциям #еггог #include Директивы условной компиляции #if, #else, #elif и #endif #ifdef и #ifndef #undef Использование defined #line #pragma Операторы препроцессора # и ## Предопределенные макросы Приложение С. Работа со старым компилятором C++ Два простых изменения Предметный указатель