C++ для чайников (+ CD-ROM)
Стефан Р. Дэвис
Полное руководство по C++, с учетом стандарта C++ 2009!
C++ остается стандартом объектно-ориентированного программирования, а данная книга содержит все, что вы обязаны знать о C++, чтобы начать программировать, и ничего лишнего! Она рассчитана на совершенно незнакомых с программированием людей и излагает все вопросы с нуля. Книга полна конкретных примеров, помогающих сложить кусочки разных тем в мозаику языка программирования.
Открой книгу и узнай:
- что такое объектно-ориентированное программирование;
- как использовать выражения и конструкции языка;
- как работать со строками, что такое указатели и куда они указывают;
- как конкретизировать абстрактные классы;
- как работает наследование и новые возможности C++ 2009;
- десять способов избежать ошибок в программах;
На прилагаемом компакт-диске:
- интегрированная среда разработки Code::Blocks;
- полнофункциональный компилятор GNU C++.
Издательство: Диалектика, Вильямс, 2009 г.
ISBN 978-5-8459-1598-6, 978-0-470-31726-4
Количество страниц: 336.
Содержание книги «C++ для чайников (+ CD-ROM)»:
- 16 Введение
- 16 О чем эта книга
- 16 Прилагаемый компакт-диск
- 17 Что такое C++
- 17 Соглашения, используемые в книге
- 18 Как организована эта книга
- 18 И еще
- 18 Часть I. Первое знакомство с C++
- 18 Часть II. Становимся функциональными программистами
- 18 Часть III. Введение в классы
- 19 Часть IV. Наследование
- 19 Часть V. Полезные особенности
- 19 Часть VI. «Великолепные десятки»
- 19 Использованные в этой книге пиктограммы
- 20 Что дальше
- 21 ЧАСТЬ I. ПЕРВОЕ ЗНАКОМСТВО С C++
- 23 Глава 1. Написание вашей первой программы
- 23 Постигая концепции C++
- 24 Установка Code::Blocks
- 26 Создание первой программы
- 27 Создание проекта
- 28 Ввод кода
- 30 Как облегчить жизнь
- 31 Построение программы
- 31 Выполнение программы
- 33 Разбор программ
- 33 Определение структуры программ C++
- 33 Использование в исходном коде комментариев
- 34 Использование инструкций в программах
- 34 Объявления
- 35 Генерация вывода
- 35 Вычисление выражений
- 36 Сохранение результатов выражения
- 36 Обзор программы Convert продолжается
- 37 Глава 2. Премудрости объявления переменных
- 37 Объявление переменных
- 38 Объявление разных типов переменных
- 39 Ограничения, налагаемые на целые числа в C++
- 39 Решение проблемы усечения дробной части
- 40 Ограничения чисел с плавающей точкой
- 41 Объявления типов переменных
- 43 Типы констант
- 44 Диапазоны числовых типов
- 44 Специальные символы
- 45 Широкая дорога для символов
- 46 Логические выражения
- 46 Выражения смешанного типа
- 47 Автоматические объявления
- 49 Глава 3. Выполнение математических операций
- 49 Бинарная арифметика
- 50 Анализ выражений
- 51 Определение порядка операций
- 51 Выполнение унарных операций
- 52 Использование операторов присвоения
- 55 Глава 4. Выполнение логических операций
- 55 Зачем нужны логические операторы
- 55 Использование простых логических операторов
- 56 Хранение логических значений
- 57 Использование целых переменных в качестве логических
- 58 Логические операции с действительными переменными
- 59 Бинарные числа в C++
- 59 Десятичная система счисления
- 60 Другие системы счисления
- 60 Двоичная система счисления
- 61 Выполнение побитовых логических операций
- 62 Побитовые операции с одним битом
- 63 Использование побитовых операторов
- 63 Простой пример
- 65 Практическое применение логических вычислений
- 67 Глава 5. Управление потоком выполнения программы
- 67 Управление ходом программы с помощью команд ветвления
- 69 Выполнение циклов
- 69 Цикл while
- 71 Использование операторов инкремента и декремента
- 72 Использование цикла for
- 74 Избегайте бесконечных циклов
- 74 Специальные операторы управления циклом
- 77 Вложенные команды управления
- 78 Инструкция выбора
- 81 ЧАСТЬ II. СТАНОВИМСЯ ФУНКЦИОНАЛЬНЫМИ ПРОГРАММИСТАМИ
- 83 Глава 6. Создание функций
- 83 Написание и использование функций
- 85 Определение первой функции
- 85 Определение функции sumSequence()
- 86 Вызов функции sumSequence()
- 86 Разделяй и властвуй
- 86 Подробный анализ функций
- 87 Простые функции
- 87 Функции с аргументами
- 90 Перегрузка функций
- 91 Определение прототипов функций
- 92 Хранение переменных в памяти
- 83 Написание и использование функций
- 95 Глава 7. Хранение последовательностей в массивах
- 95 Преимущества массивов
- 96 Работа с массивами
- 99 Инициализация массива
- 100 Выход за границы массива
- 100 Использовать ли массивы
- 100 Определение и использование массивов с элементами-массивами
- 101 Использование символьных массивов
- 101 Создание массива символов
- 102 Создание строки символов
- 103 Управление строками
- 105 Библиотечные функции
- 106 Работа с широкими строками
- 95 Преимущества массивов
- 109 Глава 8. Первое знакомство с указателями в C++
- 109 Размер переменной
- 110 Что такое адрес
- 111 Адресные операторы
- 112 Использование указателей
- 113 Использование разных типов указателей
- 114 Передача указателей функциям
- 114 Передача аргументов по значению
- 115 Передача значений указателей
- 115 Передача аргументов по ссылке
- 116 Постоянные проблемы с const
- 117 Использование кучи
- 117 Область видимости
- 118 Проблемы области видимости
- 119 Решение с применением кучи
- 121 Глава 9. Второе знакомство с указателями
- 121 Операции с указателями
- 122 Повторное знакомство с массивами в свете указателей
- 123 Операции над указателями для адресации внутри массива
- 124 Указатели и работа со строками
- 125 Почему при работе со строками пользуются указателями
- 126 Операции с указателями других типов
- 126 Отличия между указателями и массивами
- 128 Когда указатель никуда не указывает
- 129 Объявление и использование массивов указателей
- 129 Использование массивов строк
- 131 Доступ к аргументам main()
- 121 Операции с указателями
- 135 Глава 10. Препроцессор C++
- 135 Что такое препроцессор
- 136 Включение файлов
- 138 Директива #define
- 140 Как обойтись без #define
- 141 Перечисления
- 142 Использование #if
- 143 Предопределенные константы
- 145 Typedef
- 147 ЧАСТЬ III. ВВЕДЕНИЕ В КЛАССЫ
- 149 Глава 11. Знакомство с объектно-ориентированным программированием
- 149 Микроволновые печи и уровни абстракции
- 150 Приготовление блюд с помощью функций
- 150 Приготовление «объектно-ориентированных» блюд
- 150 Классификация микроволновых печей
- 151 Зачем нужна классификация
- 149 Микроволновые печи и уровни абстракции
- 153 Глава 12. Классы в C++
- 153 Введение в классы
- 153 Формат класса
- 154 Обращение к членам класса
- 155 Активация наших объектов
- 155 Моделирование реальных объектов
- 156 Зачем нужны функции-члены
- 156 Добавление функции-члена
- 157 Вызов функций-членов
- 158 Доступ к членам из функции-члена
- 160 Разрешение области видимости
- 160 Определение функции-члена
- 162 Определение функций-членов вне класса
- 163 Перегрузка функций-членов
- 165 Глава 13. Указатели на объекты
- 165 Объявление массивов объектов
- 166 Объявление указателей на объекты
- 167 Разыменование указателей на объекты
- 167 Использование стрелок
- 168 Передача объектов функциям
- 168 Вызов функции с передачей объекта по значению
- 169 Вызов функции с передачей указателя на объект
- 170 Передача объекта по ссылке
- 171 Зачем использовать указатели и ссылки
- 171 Возврат к куче
- 173 Сравнение указателей и ссылок
- 173 Использование связанных списков
- 174 Другие операции над связанным списком
- 174 Программа LinkedListData
- 177 Списки в стандартной библиотеке
- 179 Глава 14. Защищенные члены класса: не беспокоить!
- 179 Защищенные члены
- 179 Зачем нужны защищенные члены
- 180 Как устроены защищенные члены
- 181 Чем хороши защищенные члены
- 181 Защита внутреннего устройства класса
- 182 Классы с ограниченным интерфейсом
- 182 Обращение внешних функций к защищенным членам
- 179 Защищенные члены
- 185 Глава 15. Создание и удаление объектов
- 185 Создание объектов
- 186 Использование конструкторов
- 186 Конструирование одного объекта
- 187 Конструирование нескольких объектов
- 188 Конструирование составных объектов
- 190 Что такое деструктор
- 190 Зачем нужен деструктор
- 190 Работа с деструкторами
- 195 Глава 16. Аргументация конструирования
- 195 Как снабдить конструктор аргументами
- 195 Как использовать конструктор с аргументами
- 197 Перегрузка конструктора
- 199 Определение конструкторов по умолчанию
- 201 Конструирование членов класса
- 204 Конструкторы константных членов
- 204 Управление последовательностью конструирования
- 205 Локальные объекты создаются последовательно
- 205 Статические объекты создаются один раз
- 206 Все глобальные объекты создаются до вызова main()
- 206 Порядок создания глобальных объектов не определен
- 207 Члены создаются в порядке их объявления
- 208 Деструкторы удаляют объекты в порядке, обратном порядку их создания
- 208 Конструкторы как разновидность преобразования типов
- 195 Как снабдить конструктор аргументами
- 209 Глава 17. Копирующий конструктор
- 209 Копирование объекта
- 209 Зачем нужен копирующий конструктор
- 210 Использование копирующего конструктора
- 211 Автоматический копирующий конструктор
- 213 «Мелкие» и «глубокие» копии
- 216 Временные объекты
- 217 Как избегать временных объектов
- 209 Копирование объекта
- 219 Глава 18. Статические члены
- 219 Определение статических членов
- 219 Зачем нужны статические члены
- 220 Использование статических членов
- 221 Обращение к статическим данным-членам
- 222 Применение статических данных-членов
- 222 Объявление статических функций-членов
- 224 Что такое this
- 219 Определение статических членов
- 227 ЧАСТЬ IV. НАСЛЕДОВАНИЕ
- 229 Глава 19. Наследование классов
- 230 Зачем нужно наследование
- 230 Как наследуется класс
- 232 Использование подкласса
- 232 Конструирование подкласса
- 233 Деструкция подкласса
- 234 Отношение СОДЕРЖИТ
- 235 Глава 20. Знакомство с виртуальными функциями-членами: настоящие ли они
- 237 Зачем нужен полиморфизм
- 238 Как работает полиморфизм
- 239 Когда функция не будет виртуальной
- 240 Виртуальные особенности
- 243 Глава 21. Разложение классов
- 243 Разложение
- 246 Реализация абстрактных классов
- 247 Концепция абстрактных классов
- 248 Создание полноценного класса из абстрактного
- 248 Передача абстрактных классов
- 251 ЧАСТЬ V. ПОЛЕЗНЫЕ ОСОБЕННОСТИ
- 253 Глава 22. Оператор присваивания
- 253 Сравнение операторов и функций
- 254 Потоковые операторы
- 254 Мелкое копирование — глубокие проблемы
- 255 Переопределение оператора присваивания
- 259 Перегрузка оператора индексирования
- 253 Сравнение операторов и функций
- 261 Глава 23. Использование потоков ввода-вывода
- 261 Как работают потоки ввода-вывода
- 262 Потоковые объекты по умолчанию
- 263 Потоковый ввод-вывод
- 264 Режимы открытия файлов
- 264 Состояние файла
- 265 Небольшой пример
- 267 Методы классов потоков
- 269 Прямое чтение и запись потока
- 270 Управление форматированием
- 272 Что такое endl
- 272 Позиционирование в файле
- 272 Подклассы stringstream
- 275 Работа с манипуляторами
- 261 Как работают потоки ввода-вывода
- 277 Глава 24. Обработка ошибок и исключения
- 278 Зачем нужен новый механизм обработки ошибок
- 279 Механизм исключительных ситуаций
- 282 Что же мы будем бросать?
- 284 Передай дальше
- 285 Глава 25. Множественное наследование
- 285 Механизм множественного наследования
- 287 Устранение неоднозначностей множественного наследования
- 287 Виртуальное наследование
- 293 Конструирование объектов
- 293 Отрицательные стороны множественного наследования
- 295 Глава 26. Шаблоны C++
- 296 Обобщение функции в шаблон
- 297 Шаблоны классов
- 300 Советы по использованию шаблонов
- 301 Глава 27. Стандартная библиотека шаблонов
- 301 Контейнер string
- 305 Контейнер list
- 307 Огласите весь список, пожалуйста!
- 308 Операции над всем списком
- 308 Приведите пример
- 311 ЧАСТЬ VI. ВЕЛИКОЛЕПНЫЕ ДЕСЯТКИ
- 313 Глава 28. Десять способов избежать ошибок
- 313 Включение всех предупреждений и сообщений об ошибках
- 313 Используйте последовательный стиль программирования
- 314 Ограничивайте видимость
- 315 Комментируйте свою программу
- 315 Хотя бы один раз выполните программу пошагово
- 316 Избегайте перегрузки операторов
- 316 Работа с кучей
- 316 Используйте для обработки ошибок исключительные ситуации
- 316 Делайте деструкторы виртуальными
- 318 Избегайте множественного наследования
- 319 Глава 29. Десять наиболее важных добавлений в C++
- 319 Использование интеллектуальных указателей
- 320 Инициализация переменных списками переменной длины
- 321 Встроенная инициализация членов-данных
- 321 Инстанцирование внешних шаблонов
- 322 Локальная память потока
- 322 Применение ссылок rvalue
- 323 Реализация концепций
- 324 Лямбда-выражения
- 324 Определение вариадных шаблонов
- 324 Применение typeid()
- 327 Приложение. О компакт-диске
- 327 Системные требования
- 327 Использование компакт-диска
- 328 Что есть на компакт-диске
- 328 Программы .CPP
- 329 Интегрированная среда разработки Code::Blocks
- 329 Решение проблем
- 330 Предметный указатель
Инструкция как скачать книгу Стефан Р. Дэвис: C++ для чайников (+ CD-ROM) в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Рейтинг книги:
2 голоса
1902