Название: Новые сложные задачи на C++
Автор: Саттер Г.
Издательство: Вильямс
Год: 2005
Страниц: 272
Формат: PDF
Размер: 12,5 МБ
ISBN: 5-8459-0823-Х
Качество: Отличное
Серия или Выпуск: C++ In-Depth
Для сайта:
Vuzer.info
Данная книга представляет собой продолжение вышедшей ранее книги Решение сложных задач на C++. В форме задач и их решений рассматриваются современные методы проектирования и программирования на C++. В книге сконцентрирован богатый многолетний опыт программирования на C++ не только самого автора, но и всего сообщества программистов на C++, так что некоторые рекомендации автора могут показаться неожиданными даже опытным программистам-профессионалам. Автор рассматривает и конкретные методики, приемы и идиомы программирования, однако основная тема книги - это стиль программирования, причем в самом широком понимании этого слова. Особое внимание во всех задачах книги уделено вопросу проектирования, которое должно обеспечить максимальную надежность, безопасность, производительность и сопровождаемость создаваемого программного обеспечения.
Книга рассчитана в первую очередь на профессиональных программистов с глубокими знаниями языка, однако она будет полезна любому, кто захочет углубить свои знания в данной области.
Содержание:
Предисловие
Стиль или суть?
Метод Сократа
Как читать данную книгу
Благодарности
Обобщенное программирование и стандартная библиотека 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: прагматизм в управлении памятью
Задача 24. Константная оптимизация
Задача 25. inline
Задача 26. Форматы данных и эффективность. Часть 1: игры в сжатие.
Задача 27. Форматы данных и эффективность. Часть 2: игры с битами
Ловушки, ошибки и головоломки
Задача 28. Ключевые слова, не являющиеся таковыми
Задача 29. Инициализация ли это?
Задача 30. Двойная точность - вежливость программистов
Задача 31. Сумеречное состояние… кода
Задача 32. Небольшие очепятки и прочие курьезы
Задача 33. Оооопeраторы
Изучение конкретных примеров
Задача 34. Индексные таблицы
Задача 35. Обобщенные обратные вызовы
Задача 36. Объединения
Задача 37. Ослабленная монолитность. Часть 1: взгляд на std::siring
Задача 38. Ослабленная монолитность. Часть 2: разбор std::siring
Задача 39. Ослабленная монолитность. Часть 3: уменьшение std::siring
Задача 40. Ослабленная монолитность. Часть 4: новый std::string
Список литературы
Предметный указатель