Решение сложных задач на C++. 87 головоломных задач с решениями
Автор: Саттер Герб
#cpp #book #advanced
Целевая аудитория: для продвинутых разработчиков на C++.
Книга представляет из себя объединение двух изданий: Exceptional C++ и More Exceptional C++, которые входят в серию книг C++ In-Depth, редактором которой является создатель языка C++ – Бьерн Страуструп. Книга является своего рода учебным пособием для практического программирования на C++. Материал книги рассчитан в большей степени на читателей с опытом, но он также подойдет начинающим разработчикам. Более того, книга является обязательной для начинающих разработчиков, ведь в ней разобраны тонкие моменты программирования, а опытным разработчикам позволит взглянуть по-новому на решение задач или найти более эффективное решение той или иной задачи. Преимущество книги с заключается в том, что каждая задача позволяет понять многие сложные вещи в ходе разбора решения к ней. Автор простым языком представляет ряд сложных вопросов о внутренней работе C ++, сосредоточив внимание на обобщенном программировании со стандартной библиотекой шаблонов (STL), обработке исключений, управлении памятью и дизайне классов. Книга позволяют отточить свои навыки программирования на C++ на актуальных задачах, ведь многие из них взяты из конференции comp.lang.c++.moderated.
В книге рассматриваются следующие темы:
✔️обобщенное программирование и стандартная библиотека C++;
✔️вопросы и технологии безопасности исключений;
✔️разработка классов, наследование и полиформизм;
✔️брандмауэр и идиома скрытой реализации;
✔️пространства и поиск имени;
✔️управление памятью и ресурсами;
✔️оптимизация и производительность;
✔️свободные функции и макросы;
✔️ловушки, ошибки и антиидиомы, и многое другое.
Преимущества:
➕книга учит писать надежный и расширяемый код;
➕понятный и лаконичный стиль изложения;
➕каждая задача оценивается в зависимости от сложности и предназначена для иллюстрации тонкостей программирования или конструктивных соображений;
➕представленные в книге решения задач считаются лучшими практиками программирования на C++, которые каждый может использовать в своих проектах.
Недостатки:
➖оценка сложности задачи не соответствует реальной картине, а именно, некоторые из действительно сложных задач имеют низкую оценку, а простые – высокую;
➖книга написана с точки зрения автора стандартной библиотекой шаблонов, поэтому существуют некоторые сложности в понимании определенных вещей без знания предметной области, например, для начинающих разработчиков.