Автор: Шилдт Герберт Название: C++ для начинающих. Самоучитель Серия: Шаг за шагом Издательство: ЭКОМ Паблишерз Год: 2013 Страниц: 640 Формат: DJVU, PDF Размер: 41 МБ
Книга известного американского специалиста и популяризатора языков программирования, посвященная основам языка С++. Начиная с таких базовых понятий языка> как типы данных, массивы, строки,указатели и функции, книга охватывает также важнейшие элементы объёктно-ориентированного программирования - классы и объекты, наследование,' виртуальные функции, потоки ввода--вывода, исключения и шаблоны. Каждый раздел сопровождается простыми и наглядными примерами, дозволяющими получить практические навыки современного программирования. Книга предназначена для приступающих к изучению языка С++ -одного из самых универсальных и распространенных на сегодня языков программирования.
Выходные данные 641 От переводчика 6 Предисловие 8 МОДУЛЬ 1. Основы C++ 13 Краткая история C++ 14 Язык С: Заря современной эры программирования 14 Потребность в C++ 15 C++ родился 17 Эволюция C++ 17 Как C++ соотносится с языками Java и C# 18 Объектно-ориентированное программирование 20 Инкапсуляция 21 Полиморфизм 22 Наследование 23 Первая простая программа 24 Ввод программы 25 Компиляция программы 25 Запуск программы 26 Первый программный пример строка за строкой 27 Обработка синтаксических ошибок 30 Вторая простая программа 31 Использование операторов 33 Ввод с клавиатуры 35 Некоторые дополнительные возможности вывода 37 Еще один тип данных 38 Проект 1 -1: Преобразование футов в метры 40 Два управляющих предложения 43 Предложение if 43 Цикл for 45 Использование программных блоков 46 Знак точки с запятой и позиционирование 48 Практика использования отступов 49 Проект 1-2: Создание таблицы преобразования футов в метры 50 Знакомимся с функциями 52 Библиотеки C++ 55 Ключевые слова C++ 55 Идентификаторы 56 Вопросы для самопроверки 57 МОДУЛЬ 2. Знакомимся с данными, типами и операторами . . 59 Почему так важны типы данных 60 Типы данных C++ 60 Целые числа 63 Символы 65 Типы данных с плавающей точкой 67 Булев тип данных 68 Тип void 69 Проект 2-1: Разговор с Марсом 70 Литералы 72 Шестнадцатеричные и восьмеричные литералы 73 Строковые литералы 74 Символьные Esc-последовательности 74 Подробнее о переменных 76 Инициализация переменной 76 Динамическая инициализация 77 Операторы 78 Арифметические операторы 78 Инкремент и декремент 79 Операторы отношения (сравнения) и логические 81 Проект 2-2: Конструирование логической операции исключающее ИЛИ 84 Оператор присваивания 87 Составные присваивания 87 Преобразование типов в операциях присваивания 88 Выражения 89 Преобразование типа в выражениях 90 Приведение типа 90 Пробелы и скобки 92 Проект 2-3: Вычисление регулярных платежей по ссуде 92 Вопросы для самопроверки 96 МОДУЛЬ. 3. Предложения управления программой 97 Предложение if 98 Условные выражения 100 Вложенные предложения if 101 Цепочка if-else-if 102 Предложение switch 104 Вложенные предложения switch 108 Проект 3-1: Начинаем строить справочную систему C++ 109 Цикл for 112 Некоторые варианты цикла for 114 Опущенные секции 115 Бесконечный цикл for 117 Цикл с отсутствующим телом 117 Объявление переменных управления циклом внутри цикла for 118 Цикл while 120 Цикл do-while 122 Проект 3-2: Усовершенствование справочной системы C++ 124 Использование break для выхода из цикла 128 Использование continue 130 Проект 3-3: Завершаем разработку справочной системы C++ 131 Вложенные циклы 135 Использование предложения goto 136 Вопросы для самопроверки 137 МОДУЛЬ 4. Массивы, строки и указатели 139 Одномерные массивы 140 Границы не проверяются! 144 Двумерные массивы 145 Многомерные массивы 146 Проект 4-1: Упорядочение массива 147 Строки 150 Основы техники строк 150 Ввод строки с клавиатуры 151 Некоторые библиотечные функции обработки строк 153 strcpy() 153 strcat() 154 strcmp() 154 strlen() 154 Пример обработки строк 155 Использование завершающего нуля 156 Инициализация массивов 157 Инициализация массивов неопределенной длины 160 Массивы строк 162 Указатели 164 Что такое указатели? 164 Операторы указателей 165 Базовый тип указателя имеет большое значение 167 Операции присваивания посредством указателя 168 Выражения с указателями 169 Арифметика указателей 170 Сравнение указателей 172 Указатели и массивы 172 Индексация указателя 175 Строковые константы 177 Проект 4-2: Переворачивание строки 178 Массивы указателей 181 Соглашение о нулевом указателе 183 Указатель на указатель 184 Вопросы для самопроверки 186 МОДУЛЬ 5. Введение в функции 187 Основы функций 188 Общая форма определения функции 188 Создание функции 189 Использование аргументов 190 Использование предложения return 192 Возвращаемые значения 195 Использование функций в выражениях 197 Правила видимости 199 Локальная область видимости 199 Глобальная область видимости 205 Передача в функции указателей и массивов 208 Передача указателя 209 Передача массива 210 Передача строк 213 Возврат указателей 214 Функция main() 216 argc и argv: аргументы функции main() 216 Передача числовых аргументов командной строки 219 Прототипы функций 220 Заголовки содержат прототипы 222 Рекурсия 223 Проект 5-1: Быстрое упорядочение 227 Вопросы для самопроверки 231 МОДУЛЬ 6. Подробнее о функциях 233 Два подхода к передаче аргументов 234 Как C++ передает аргументы 234 Использование указателя для создания вызова по ссылке 236 Параметры-ссылки 238 Возврат ссылок 243 Независимые ссылочные переменные 246 Несколько ограничений при использовании ссылочных пере менных . . . 247 Перегрузка функций 247 Автоматическое преобразование типов и перегрузка 252 Проект 6-1: Создание перегруженных функций для вывода на экран 255 Аргументы функций с инициализацией по умолчанию 261 Аргументы с инициализацией по умолчанию или перегрузка? 263 Правильное использование аргументов с инициализацией по умолчанию 265 МОДУЛЬ 7. Подробнее о типах данных и операторах 271 Описатели const и volatile 272 const 272 volatile 274 Описатели классов памяти 275 auto 276 extern 276 Статические переменные 278 Регистровые переменные 282 Перечислимые типы 284 typedef 288 Побитовые операторы 289 Операторы И, ИЛИ, исключающее ИЛИ и НЕ 290 Операторы сдвига 295 Проект 7-1: Создание функций циклического побитового сдвига 298 Оператор? 303 Оператор-запятая 304 Множественное присваивание 306 Составное присваивание 306 Использование оператора sizeof 307 Обзор относительных приоритетов 308 Вопросы для самопроверки 309 МОДУЛЬ 8. Классы и объекты 311 Основы классов 312 Общая форма класса 312 Определение класса и создание оъектов 313 Добавление в класс функций-членов . 317 Проект 8-1: Создание класса справочника 321 Конструкторы и деструкторы 326 Параметрические конструкторы 329 Добавление конструктора в класс Vehicle 331 Другой способ инициализации 333 Встроенные функции 334 Создание встроенных функций внутри класса 336 Проект 8-2: Создание класса очереди 339 Массивы объектов 344 Инициализация массивов объектов 345 Указатели на объекты 347 Ссылки на объекты 350 Вопросы для самопроверки 350 МОДУЛЬ 9. Подробнее о классах 351 Перегрузка конструкторов 352 Присваивание объектов 353 Передача объектов функциям 355 Конструкторы, деструкторы и передача объектов 357 Передача объектов по ссылке 358 Потенциальные проблемы при передаче объектов 360 Возврат объектов 361 Создание и использование конструктора копий 363 Дружественные функции 367 Структуры и объединения 372 Структуры 372 Объединения 374 Ключевое слово this 378 Перегрузка операторов 379 Перегрузка операторов с использованием функций-членов 381 Другие вопросы 384 Использование функций-членов для перегрузки унарных операторов 385 Операторные функции-не члены 390 Использование дружественной функции для перегрузки унарного оператора 394 Советы и ограничения при перегрузке операторов 396 Проект 9-1: Создание класса, определяющего множество 397 Вопросы для самопроверки 407 МОДУЛЬ 10. Наследование, виртуальные функции и полиморфизм 409 Основы наследования 410 Доступ к членам и наследование 413 Управление доступом к базовому классу 417 Использование защищенных членов 419 Конструкторы и наследование 422 Вызов конструктора базового класса 424 Проект 10-1: Расширение класса Vehicle 429 Создание многоуровневой иерархии классов 433 Наследование от нескольких базовых классов 436 Когда выполняются функции конструктора и деструктора 437 Указатели на производные классы 439 Ссылки на производные типы 441 Виртуальные функции и полиморфизм 441 Основы виртуальных функций 441 Виртуальные функции наследуются 444 Зачем нужны виртуальные функции? 446 Приложение виртуальных функций 447 МОДУЛЬ 11. C++ и система ввода-вывода 457 Старая и новая системы ввода-вывода 458 Потоки C++ 459 Предопределенные потоки C++ 460 Потоковые классы C++ 460 Перегрузка операторов ввода-вывода 462 Создание операторных функций вывода 462 Использование дружественных функций для перегрузки операторов вывода 464 Перегрузка операторов ввода 466 Форматированный ввод-вывод 468 Форматирование с помощью функций-членов ios 468 Использование манипуляторов ввода-вывода 475 Создание собственных манипуляторных функций 477 Файловый ввод-вывод 480 Открытие и закрытие файла 480 Чтение и запись текстовых файлов 483 Неформатированный и двоичный ввод-вывод 485 Чтение и запись блоков данных 487 Больше о функция ввода-вывода 489 Другие варианты get() 489 getline() 491 Обнаружение символа EOF 491 peek() и putback() 491 flush() 492 Проект 11-1: Утилита сравнения файлов 492 Произвольный доступ 497 Определение состояния ввода-вывода 500 Вопросы для самопроверки 501 МОДУЛЬ 12. Исключения, шаблоны и другие дополнительные темы 503 Обработка исключений 504 Основы обработки исключений 504 Использование группы предложений catch 510 Улавливание всех исключений 512 Задание исключений, выбрасываемых функцией 513 Вторичное выбрасывание исключения 515 Шаблоны 517 Родовые функции 518 Функция с двумя родовыми типами 520 Явная перегрузка родовых функций 521 Родовые классы 523 Явные специализации класса 526 Проект 12-1: Создание родового класса очереди 527 Динамическое выделение памяти 531 Инициализация выделенной памяти 534 Выделение памяти под массивы 535 Выделение памяти под объекты 536 Пространства имен 540 Основы использования пространств имен 541 Предложение using 545 Безымянные пространства имен 547 Пространство имен std 547 Статические члены классов 548 Статические переменные-члены 548 Статические функции-члены 551 Динамическая идентификация типов (RTTI) 553 Операторы приведения типа 557 dynamic_cast 557 const_cast 559 static_cast 559 reinterpret_cast 560 Что дальше? 560 Вопросы для самопроверки 561 Приложение А. Ответы на Вопросы для самопроверки 563 Приложение В. Препроцессор 603 #define 604 Макросы, подобные функциям 606 #еггог 608 #include 608 Директивы условной компиляции 609 #if, #else, #elif и #endif 609 #ifdef и #ifndef 612 #undef 613 Использование defined 613 #line 614 #pragma 614 Операторы препроцессора # и ## 614 Предопределенные макросы 616 Приложение С. Работа со старым компилятором C++ 617 Два простых изменения 619 Предметный указатель 621
Внимание
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.