Информация о книге

978-5-97060-088-7

Главная  » Научно-техническая литература » Информационные технологии. Компьютеры » Программирование » С, С++, C# » Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ

Мэйерс С., Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ


серия: Профессиональная серия от Addison-Wesley
ДМК-Пресс, 2014 г., 978-5-97060-088-7


Наличие в интернет-магазинах

Магазинов: 1, Цена: от 1081 руб. посмотреть все

Описание книги

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество сонетов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам. Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Купить эту книгу можно в интернет-магазинах

  Лабиринт - 1081 руб.
  Страница товара выбранного интернет-магазина откроется в новом табе

Ключевые слова

Поделиться ссылкой на книгу



Содержание книги

Благодарности
Предисловие
Введение
Терминология
Соглашения об именах
Многопоточность
Библиотеки TR1 и Boost
Глава 1. Приучайтесь к C++
Правило 1: Относитесь к C++ как к конгломерату
языков
Правило 2: Предпочитайте const, enum и inline
использованию #define
Правило 3: Везде, где только можно, используйте
const
Константные функции-члены
Как избежать дублирования в константных и
неконстантных функциях-членах
Правило 4: Прежде чем использовать объекты,
убедитесь, что они инициализированы
Глава 2. Конструкторы, деструкторы и операторы
присваивания
Правило 5: Какие функции C++ создает и
вызывает молча
Правило 6: Явно запрещайте компилфятору
генерировать функции, которые вам не нужны
Правило 7: Объявляйте деструкторы
виртуальными в полиморфном базовом классе
Правило 8: Не позволяйте исключениям покидать
деструкторы
Правило 9: Никогда не вызывайте виртуальные
функции в конструкторе или деструкторе
Правило 10: Операторы присваивания должны
возвращать
ссылку на *this
Правило 11: В operator= осуществляйте проверку
на присваивание самому себе
Правило 12: Копируйте все части объекта
Глава 3. Управление ресурсами
Правило 13: Используйте объекты для управления
ресурсами
Правило 14: Тщательно продумывайте поведение
при копировании классов, управляющих ресурсами
Правило 15: Предоставляйте доступ к самим
ресурсам из управляющих ими классов
Правило 16: Используйте одинаковые формы new и
delete
Правило 17: Помещение в "интеллектуальный"
указатель объекта, выделенного с помощью new,
лучше располагать в отдельном предложении
Глава 4. Проектирование программ и объявления
Правило 18: Проектируйте интерфейсы так, что их
легко было использовать правильно и трудно -
неправильно
Правило 19: Рассматривайте проектирование
класса как проектирование типа
Правило 20: Предпочитайте передачу по ссылке на
const передаче по значению
Правило 21: Не пытайтесь вернуть ссылку, когда
должны вернуть объект
Правило 22: Объявляйте данные-члены закрытыми
Правило 23: Предпочитайте функциям-членам
функции, не являющиеся ни членами, ни друзьями
класса
Правило 24: Объявляйте функции, не являющиеся
членами, когда преобразование типов должно быть
применимо ко всем параметрам
Правило 25: Подумайте о поддержке функции
swap, не возбуждающей исключений
Глава 5. Реализация
Правило 26: Откладывайте определение
переменных насколько возможно
Правило 27: Не злоупотребляйте приведением
типов
Травило 28: Избегайте возвращения
"дескрипторов" внутренних данных
Правило 29: Стремитесь, чтобы программа была
безопасна относительно исключений
Правило 30: Тщательно обдумывайте
использование встроенных функций
Правило 31: Уменьшайте зависимости файлов при
компиляции
Глава 6. Наследование и
объектно-ориентированное проектирование
Правило 32: Используйте открытое наследование
для моделирования отношения "является"
Правило 33: Не скрывайте унаследованные имена
Правило 34: Различайте наследование интерфейса
и наследование реализации
Правило 35: Рассмотрите альтернативы
виртуальным функциям
Реализация паттерна "Шаблонный метод" с
помощью идиомы невиртуального интерфейса
Реализация паттерна "Стратегия" посредством
указателей на функции
Реализация паттерна "Стратегия" посредством
класса tr::function
"Классический" паттерн "Стратегия"
Резюме
Правило 36: Никогда не переопределяйте
наследуемые невиртуальные функции
Правило 37: Никогда не переопределяйте
наследуемое значение аргумента функции по
умолчанию
Правило 38: Моделируйте отношение "содержит"
или "реализуется посредством" с помощью
композиции
Правило 39: Продумывайте подход к
использованию закрытого наследования
Правило 40: Продумывайте подход к
использованию множественного наследования
Глава 7. Шаблоны и обобщенное программирование
Правило 41: Разберитесь в том, что такое неявные
интерфейсы и полиморфизм на этапе компиляции
Правило 42: Усвойте оба значения ключевого слова
typename
Правило 43: Необходимо знать, как обращаться к
именам в шаблонных базовых классах
Правило 44: Размещайте независимый от
параметров код вне шаблонов
Правило 45: Разрабатывайте шаблоны
функций-членов так, чтобы они принимали "все
совместимые типы"
Правило 46: Определяйте внутри шаблонов
функции, не являющиеся членами, когда
желательны преобразования типа
Правило 47: Используйте классы-характеристики
для предоставления информации о типах
Правило 48: Изучите метапрограммирование
шаблонов
Глава 8. Настройка new и delete
Правило 49: Разберитесь в поведении обработчика
new
Правило 50: Когда имеет смысл заменять new и
delete
Правило 51: Придерживайтесь принятых
соглашений при написании new и delete
Правило 52: Если вы написали оператор new с
размещением, напишите и соответствующий
оператор delete
Глава 9. Разное
Правило 53: Обращайте внимание на
предупреждения компилятора
Правило 54: Ознакомьтесь со стандартной
библиотекой, включая TR1
Правило 55: Познакомьтесь с Boost
Приложение А. За пределами "Эффективного
использования C++"
Приложение В. Соответствие правил во втором и
третьем изданиях


Об авторе


Отзывы

Опечаток в коде и неверный перевод  [20 May 2015]
Книга хорошая. В оригинале. Тут - куча опечаток в коде (виноват тех. редактор - в оригинале правильно). Перевод - есть серьёзные проблемы.

В оригинале - \"... C++ doesn`t provide a way to make a reference refer to a different object\" (\"... в C++ нет способа заставить ссылку сослаться на другой объект\"), переведено как \"... C++ не позволяет изменить объект, на который указывает ссылка\". Перевод НЕ ВЕРЕН ни формально, ни фактически - ссылка на неконстантный объект ЕЩЁ КАК ПОЗВОЛЯЕТ изменять объект - она для этого и нужна !
Хорошее содержание но плохое издание  [13 March 2015]
Досоинства:
Содержание книги хорошее.
Читается легко.
Для меня, как продолжающего изучать с++, оказалась интересной.
После прочтения многое прояснилось.

Недостатки:
Присутсвуют опечатки.
Текст мелкий.

Уважаемое издательсво. Вы издали книгу для людей проводящих за экранами комьпьтера по 8 и более часов в день.
Почему нельзя сделать шрифт по крупнее.(например http://www.ozon.ru/context/detail/id/2381848/)
Ваша книга читабельна только дома за столом при хорошем освещении!
Не качественный перевод  [ 1 February 2015]
Книга переведена с опечатками из-за которых приходится поломать голову, как пример кода вообще может компилироваться, решил посмотреть в оригинал книги на английском... меня поразило то, что издатели книги не могли скопировать примеры кода, а решили видимо его в ручную переписать с ошибками, да еще и без выдиления жирным цветом ключевых моментов в коде, которые хотел подчеркнуть автор книги. Видимо издатели русской версии не знакомы с клавишами ctrl+c, ctrl+v. Вообщем многие места в книги приводили меня в заблуждение. Совет таков если знаете английский, то читайте оригинал. Иначе будьте бдительными с примерами из русской версии, так как они могут вас обмануть...
Много опечаток  [ 1 April 2009]
В книге присутствует изрядное количество опечаток в коде. Так как оригинал мне не доступен, не могу сказать, виноват в этом Мэйерс или переводившее издательство. Для новичков это создает определенную сложность, а с другой стороны так интереснее, приходится шевелить мозгами :-). Но, тем не менее, я считаю эту книгу очень ценным приобретением как для профессионалов, так и для начинающих программистов.
Для начинающих профессионалов  [11 October 2008]
Отличная книга для новичка, чтоб осознать насколько непредсказуемым может быть неаккуратное использование C++. И для профессионала найдется парочка полезных советов (например, как использовать std::tr1::shared_ptr для разрешения проблемы с DLL). Книга полностью сконцентрирована на полезных советах, а не выявлении темных уголков языка, которые вряд ли кому-то когда-либо пригодятся, как это делает тот же Саттер.
Рекомендую заставлять читать эту книгу всех начинающих C++ разработчиков в команде.
В коде заметил пару опечаток.
5  [14 June 2008]
Сегодня получил книгу по почте вместе с Ruby (http://www.ozon.ru/context/detail/id/3858825/), по первым страницам выдает себя как очень, очень неплохое издание.
Сказать более конкретное сказать пока не могу, но надеюсь, что некоторые советы и выдержки из книги пойдут на пользу.
Спасибо
Замечательная книжка.  [22 December 2006]
В 3-м издании много нового, проводятся параллели с .NET, много нестандартных решений с использованием boost и tr1. Я бы рекомендовал эту книжку каждому, кто считает себя профессионалом.
+  [22 March 2006]
Если вы уже знаете C++, то обязательно прочтите эту книгу для того, чтобы приблизится к уровню профессионала.
Актуальная книга  [20 March 2006]
Для профессионалов: паттерны, исключения, библиотеки - все описано хорошо.

Последние поступления в рубрике "С, С++, C#"



Справочник программиста по C/C++ Справочник программиста по C/C++ Шилдт Г.

Герберт Шилдт, легендарный автор книг по программированию, столь умело выделил основные элементы языков С и C++ и организовал их в таком удобном формате, что вы быстро и легко найдете ответы на все свои вопросы по программированию на С и C++. В......

C++ для инженерных и научных расчетов. Руководство C++ для инженерных и научных расчетов. Руководство Готтшлинг П.

С развитием вычислительной техники научные и инженерные проекты становятся все более крупными и сложными, и все более вероятно, что все новые проекты будут разрабатываться на C++. По мере того, как встраиваемое аппаратное обеспечение становится все......

C# 8.0. Скорая помощь для программистов на C# 8.0. Карманный справочник C# 8.0. Скорая помощь для программистов на C# 8.0. Карманный справочник Албахари Д.

Когда вам нужны ответы на вопросы по программированию на языке С# 8.0, этот узкоспециализированный справочник предложит именно то, что необходимо знать — без всяких длинных введений или раздутых примеров. Легкое в чтении и идеальное в качестве......

Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Мэйерс С., Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.