Решение сложных задач на C++ - Книга, которую вы держите в руках, не нуждается в представлении. Кому из серьезных программистов на C++ не известен Web-узел Guru of the Week и его автор Герб Саттер? На основе представленных на этом Web-узле материалов Саттер издал две книги — Exceptional C++ и More Exceptional C++, и в настоящее время работает над очередной книгой этой серии. В связи с тем, что книга More Exceptional C++ по сути представляет собой продолжение Exceptional C++, было принято решение объединить эти книги при издании на русском языке в одну. Благодаря четкому разделению материала книг по темам и практически идентичному стилю книг в результате получилось не механическое объединение двух книг под одной обложкой, а единая книга, вобравшая в себя опыт множества программистов высочайшего уровня. Изложение материала в виде задач и их решений позволяет не просто получить теоретические знания, но и тут же закрепить их путем применения на практике. Строгое разделение материала книги по темам позволяет не просто прочесть ее один раз, но и использовать ее как настольную книгу, в которой всегда можно найти подсказку о том, как решать проблемы, возникающие перед вами в процессе работы над реальными проектами.
Название: Решение сложных задач на C++ Автор: Саттер Герб Издательство: Вильямс Год: 2008 Страниц: 400 Формат: PDF Размер: 7,05 МБ ISBN: 978-5-8459-0352-5 Качество: Отличное Серия или Выпуск: C++ In-Depth Язык: Русский
Содержание:
1. Обобщенное программирование и стандартная библиотека C++ Задача 1.1. Итераторы. Задача 1.2. Строки, нечувствительные к регистру. Часть 1 Задача 1.3. Строки, нечувствительные к регистру. Часть 2 Задача 1.4. Обобщенные контейнеры с максимальным повторным использованием. Часть 1 Задача 1.5. Обобщенные контейнеры с максимальным повторным использованием. Часть 2 Задача 1.6. Временные объекты Задача 1.7. Использование стандартной библиотеки (или еще раз о временных объектах) Задача 1.8. Переключение потоков Задача 1.9. Предикаты. Часть 1 Задача 1.10. Предикаты. Часть 2 Задача 1.11. Расширяемые шаблоны Задача 1.12. Typename Задача 1.13. Контейнеры, указатели и не контейнеры Задача 1.14. Использование vector и deque Задача 1.15. Использование set и тар Задача 1.16. Эквивалентный код? Задача 1.17. Специализация и перегрузка шаблонов Задача 1.18. Mastermind 2. Вопросы и технологии безопасности исключений Задача 2.1. Разработка безопасного кода. Часть 1 Задача 2.2. Разработка безопасного кода. Часть 2 Задача 2.3. Разработка безопасного кода. Часть 3 Задача 2.4. Разработка безопасного кода. Часть 4 Задача 2.5. Разработка безопасного кода. Часть 5 Задача 2.6. Разработка безопасного кола. Часть 6 Задача 2.7. Разработка безопасного кода. Часть 7 Задача 2.8. Разработка безопасного кода. Часть 8 Задача 2.9. Разработка безопасного кода. Часть 9 Задача 2.10. Разработка безопасного кода. Часть 10 Задача 2.11. Сложность кола. Часть I Задача 2.12. Сложность кода. Часть 2 Задача 2.13. Исключения в конструкторах. Часть 1 Задача 2.14. Исключения в конструкторах. Часть 2 Задача 2.15. Неперехваченные исключения Задача 2.16. Проблема неуправляемых указателей. Часть 1 Задача 2.17. Проблема неуправляемых указателей. Часть 2 Задача 2.18. Разработка безопасных классов. Часть I Задача 2.19. Разработка безопасных классов. Часть 2 3. Разработка классов, наследование и полиморфизм Задача 3.1. Механика классов Задача 3.2. Замещение виртуальных функций Задача 3.3. Взаимоотношения классов. Часть 1 Задача 3.4. Взаимоотношения классов. Часть 2 Задача 3.5. Наследование: потребление и злоупотребление Задача 3.6. Объектно-ориентированное программирование Задача 3.7. Множественное наследование Задача 3.8. Эмуляция множественного наследования Задача 3.9. Множественное наследование и проблема сиамских близнецов Задача 3.10. (Не)чисто виртуальные функции Задача 3.11. Управляемый полиморфизм 4. Брандмауэр и идиома скрытой реализации Задача 4.1. Минимизация зависимостей времени компиляции. Часть 1 Задача 4.2. Минимизация зависимостей времени компиляции. Часть 2 Задача 4.3. Минимизация зависимостей времени компиляции. Часть 3 Задача 4.4. Брандмауэры компиляции Задача 4.5. Идиома «Fasl Pimpl» 5. Пространства и поиск имен Задача 5.1. Поиск имен и принцип интерфейса. Часть 1 Задача 5.2. Поиск имен и принцип интерфейса. Часть 2 Задача 5.3. Поиск имен и принцип интерфейса. Часть 3 Задача 5.4. Поиск имен и принцип интерфейса. Часть 4 6. Управление памятью и ресурсами Задача 6.1. Управление памятью. Часть 1 Задача 6.2. Управление памятью. Часть 2 Задача 6.3. Применение auto_ptr. Часть 1 Задача 6.4. Применение auto_ptr. Часть 2 Задача 6.5. Интеллектуальные указатели-члены. Часть 1 Задача 6.6. Интеллектуальные указатели-члены. Часть 2 7. Оптимизация и производительность Задача 7.1. inline Задача 7.2. Отложенная оптимизация. Часть 1 Задача 7.3. Отложенная оптимизация. Часть 2 Задача 7.4. Отложенная оптимизация. Часть 3 Задача 7.5. Отложенная оптимизация. Часть 4 8. Свободные функции и макросы Задача 8.1. Рекурсивные объявления Задача 8.2. Имитация вложенных функций Задача 8.3. Макросы препроцессора Задача 8.4. #Definition Типичные ошибки при работе с макросами 9. Ловушки, ошибки и антиидиомы Задача 9.1. Тождественность объектов Задача 9.2. Автоматические преобразования Задача 9.3. Времена жизни объектов. Часть 1 Задача 9.4. Времена жизни объектов. Часть 2 10. Понемногу обо всем Задача 10.1. Инициализация. Часть 1 Задача 10.2. Инициализация. Часть 2 Задача 10.3. Корректность const Задача 10.4. Приведения Задача 10.5. bool Задача 10.6. Пересылающие функции Задача 10.7. Поток управления Задача 10.8. Предварительные объявления Задача 10.9. typedef Задача 10.10. Пространства имен. Часть 1 Задача 10.11. Пространства имен. Часть 2 Послесловие Список литературы Предметный указатель