Новые сложные задачи на C++

Купить бумажную книгу и читать

Купить бумажную книгу

По кнопке выше можно купить бумажные варианты этой книги и похожих книг на сайте интернет-магазина "Лабиринт".

Using the button above you can buy paper versions of this book and similar books on the website of the "Labyrinth" online store.

Реклама. ООО "ЛАБИРИНТ.РУ", ИНН: 7728644571, erid: LatgCADz8.

Название: Новые сложные задачи на C++

Автор: Саттер Г.

Издательство: Вильямс

Год: 2008

Страниц: 272

ISBN: 978-5-8459-0823-0

Формат: PDF

Размер: 10 Мб

Язык: русский

Серия: C++ In-Depth

Многие из рассмотренных в книге задач появились в результате работы автора и других программистов над своими программами. Цель книги — помочь читателю сделать верные выводы, как из хорошо известного ему материала, так и из только что изученного, и показать взаимосвязь между различными частями C++.

Данная книга не посвящена какому-то конкретному аспекту C++. Нельзя, однако, сказать, что она охватывает все детали C++ — для этого потребовалось бы слишком много книг, — но, тем не менее, в ней рассматривается широкая палитра возможностей C++ и стандартной библиотеки и, что немаловажно, демонстрируется, как кажущиеся на первый взгляд несвязанными между собой вещи могут совместно использоваться для получения новых решений старых и хорошо известных задач. Здесь вы найдете материал, посвященный шаблонам и пространствам имен, исключениям и наследованию, проектированию надежных классов и шаблонам проектирования, обобщенному программированию и магии макросов, — и не просто винегрет из этих вопросов, а задачи и решения, выявляющие взаимосвязь всех этих частей современного C++.

Оглавление

Предисловие 14

Стиль или суть? 14

Метод Сократа 15

Как читать данную книгу 16

Благодарности 17

Обобщенное программирование и стандартная библиотека C++ 19

Задача 1. Вектор: потребление и злоупотребление 20

Задача 2. Строчный двор. Часть 1: sprintf 26

Задача 3. Строчный двор. Часть 2: стандартные альтернативы 30

Задача 4. Функции-члены стандартной библиотеки 39

Задача 5. Красота обобщенности. Часть 1: Азы 42

Задача 6. Красота обобщенности. Часть 2: Достаточно ли универсальности? 45

Задача 7. Почему не специализируются шаблоны функций? 50

Задача 8. Дружественные шаблоны 56

Задача 9. Ограничения экспорта. Часть 1: основы 64

Задача 10. Ограничения экспорта. Часть 2: взаимосвязи, практичность

и советы по использованию 71

Вопросы и приемы безопасности исключений 79

Задача 11. Попробуй поймай 80

Задача 12. Безопасность исключений: стоит ли овчинка выделки? 84

Задача 13. Прагматичный взгляд на спецификации исключений 87

Разработка классов, наследование и полиморфизм 95

Задача 14. К порядку! 96

Задача 15. Потребление и злоупотребление правами доступа 99

Задача 16. Крепко закрыт? 103

Задача 17. Инкапсуляция 110

Задача 18. Виртуальность 118

Задача 19. Не можешь — научим, не хочешь — заставим! 126

Задача 20. Контейнеры в памяти. Часть 1: уровни управления памятью 138

Задача 21. Контейнеры в памяти. Часть 2: какие они на самом деле? 142

Задача 22. Новый взгляд на new. Часть 1: многоликий оператор new 149

Задача 23. Новый взгляд на new. Часть 2: прагматизм в управлении памятью 156

Оптимизация и эффективность 163

Задача 25. inline 168

Задача 26. Форматы данных и эффективность. Часть 1: игры в сжатие. 175

Задача 27. Форматы данных и эффективность. Часть 2: игры с битами 179

Ловушки, ошибки и головоломки 185

Задача 28. Ключевые слова, не являющиеся таковыми 186

Задача 29. Инициализация ли это? 192

Задача 30. Двойная точность — вежливость программистов 197

Задача 31. Сумеречное состояние... кода 200

Задача 32. Небольшие очепятки и прочие курьезы 204

Задача 33. Ооооператоры 207

Изучение конкретных примеров 211

Задача 34. Индексные таблицы 212

Задача 35. Обобщенные обратные вызовы 221

Задача 36. Объединения 228

Задача 37. Ослабленная монолитность. Часть 1: взгляд на std::string 242

Задача 38. Ослабленная монолитность. Часть 2: разбор std::string 247

Задача 39. Ослабленная монолитность. Часть 3: уменьшение std::string 254

Задача 40. Ослабленная монолитность. Часть 4: новый std::string 257

Список литературы 265

Предметный указатель 268

Дата создания страницы: