Данная книга представляет собой продолжение вышедшей ранее книги Решение сложных задач на C++. В форме задач и их решений рассматриваются современные методы проектирования и программирования на C++. В книге сконцентрирован богатый многолетний опыт программирования на C++ не только самого автора, но и всего сообщества программистов на C++, так что некоторые рекомендации автора могут показаться неожиданными даже опытным программистам-профессионалам. Автор рассматривает и конкретные методики, приемы и идиомы программирования, однако основная тема книги - это стиль программирования, причем в самом широком понимании этого слова. Особое внимание во всех задачах книги уделено вопросу проектирования, которое должно обеспечить максимальную надежность, безопасность, производительность и сопровождаемость создаваемого программного обеспечения. Книга рассчитана в первую очередь на профессиональных программистов с глубокими знаниями языка, однако она будет полезна любому, кто захочет углубить свои знания в данной области.
Название: Новые сложные задачи на C++ Автор: Саттер Г. Издательство: Вильямс Год: 2005 Страниц: 272 Формат: PDF Размер: 12,5 МБ ISBN: 5-8459-0823-Х Качество: Отличное Серия или Выпуск: 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: прагматизм в управлении памятью Задача 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 Список литературы Предметный указатель