Новые сложные задачи на C++ - Многие из рассмотренных в книге задач появились в результате работы автора и других программистов над своими программами. Цель книги — помочь читателю сделать верные выводы, как из хорошо известного ему материала, так и из только что изученного, и показать взаимосвязь между различными частями C++. Данная книга не посвящена какому-то конкретному аспекту C++. Нельзя, однако, сказать, что она охватывает все детали C++ — для этого потребовалось бы слишком много книг, — но, тем не менее, в ней рассматривается широкая палитра возможностей C++ и стандартной библиотеки и, что немаловажно, демонстрируется, как кажущиеся на первый взгляд несвязанными между собой вещи могут совместно использоваться для получения новых решений старых и хорошо известных задач. Здесь вы найдете материал, посвященный шаблонам и пространствам имен, исключениям и наследованию, проектированию надежных классов и шаблонам проектирования, обобщенному программированию и магии макросов, — и не просто винегрет из этих вопросов, а задачи и решения, выявляющие взаимосвязь всех этих частей современного C++.
Название: Новые сложные задачи на C++ Автор: Саттер Г. Издательство: Вильямс Год: 2008 Страниц: 272 Формат: PDF Размер: 10,03 МБ ISBN: 978-5-8459-0823-0 Качество: отличное Серия: C++ In-Depth Язык: русский
Содержание:
Предисловие Стиль или суть? Метод Сократа Как читать данную книгу Благодарности Обобщенное программирование и стандартная библиотека C++ Задача 1. Вектор: потребление и злоупотребление Задача 2. Строчный двор. Часть 1: sprintf Задача 3. Строчный двор. Часть 2: стандартные альтернативы Задача 4. Функции-члены стандартной библиотеки Задача 5. Красота обобщенности. Часть 1: Азы Задача 6. Красота обобщенности. Часть 2: Достаточно ли универсальности? Задача 7. Почему не специализируются шаблоны функций? Задача 8. Дружественные шаблоны Задача 9. Ограничения экспорта. Часть 1: основы Задача 10. Ограничения экспорта. Часть 2: взаимосвязи, практичность и советы по использованию Вопросы и приемы безопасности исключений Задача 11. Попробуй поймай Задача 12. Безопасность исключений: стоит ли овчинка выделки? Задача 13. Прагматичный взгляд на спецификации исключений Разработка классов, наследование и полиморфизм Задача 14. К порядку! Задача 15. Потребление и злоупотребление правами доступа Задача 16. Крепко закрыт? Задача 17. Инкапсуляция Задача 18. Виртуальность Задача 19. Не можешь - научим, не хочешь - заставим! Задача 20. Контейнеры в памяти. Часть 1: уровни управления памятью Задача 21. Контейнеры в памяти. Часть 2: какие они на самом деле? Задача 22. Новый взгляд на new. Часть 1: многоликий оператор new Задача 23. Новый взгляд на new. Часть 2: прагматизм в управлении памятью Оптимизация и эффективность Задача 25. inline Задача 26. Форматы данных и эффективность. Часть 1: игры в сжатие Задача 27. Форматы данных и эффективность. Часть 2: игры с битами Ловушки, ошибки и головоломки Задача 28. Ключевые слова, не являющиеся таковыми Задача 29. Инициализация ли это? Задача 30. Двойная точность - вежливость программистов Задача 31. Сумеречное состояние… кода Задача 32. Небольшие очепятки и прочие курьезы Задача 33. Ооооператоры Изучение конкретных примеров Задача 34. Индексные таблицы Задача 35. Обобщенные обратные вызовы Задача 36. Объединения Задача 37. Ослабленная монолитность. Часть 1: взгляд на std::string Задача 38. Ослабленная монолитность. Часть 2: разбор std::string Задача 39. Ослабленная монолитность. Часть 3: уменьшение std::string Задача 40. Ослабленная монолитность. Часть 4: новый std::string Список литературы Предметный указатель