Система Orphus

Наиболее эффективное использование C++. 35 новых рекомендаций по улучшению ваших программ и проектов

Автор: Скотт Мейерс
Издательство: "ДМК", 2000
304 страницы

Материал предоставил: Игорь Сухов
Найти в магазинах

Аннотация

Содержание
Комментарии

Аннотация

В новой книге Скотта Мейерса, которая является продолжением популярного издания "Эффективное использование C++", приводятся рекомендации по наиболее эффективному использованию конструкций языка C++. Рассматриваются правила перегрузки операторов, способы приведения типов, реализация механизма RTTI и многое другое. Даны практические советы по применению буферизованного оператора new, виртуальных конструкторов, интеллектуальных указателей, proxy-классов и двойной диспетчеризации. Особое внимание уделяется работе с исключениями и возможностям использования кода С в программах, написанных на C++. Подробно описаны новейшие средства языка и показано, как с их помощью повысить производительность программ. Приложения содержат код шаблона auto_ptr и аннотированный список литературы и Internet-ресурсов, посвященных C++.

Содержание

Введение

Глава 1. Основы

Правило 1. Различайте указатели и ссылки
Правило 2. Предпочитайте приведение типов в стиле С++
Правило 3. Никогда не используйте полиморфизм в массивах
Правило 4. Избегайте неоправданных конструкторов по умолчанию

Глава 2. Операторы

Правило 5. Опасайтесь определяемых пользователем функций преобразования типов
Правило 6. Различайте префиксную и постфиксную формы операторов инкремента и декремента
Правило 7. Никогда не перегружайте операторы &&, || и ,
Правило 8. Различайте значение операторов new и delete

Глава 3. Исключения

Правило 9. Чтобы избежать утечки ресурсов, используйте деструкторы
Правило 10. Не допускайте утечки ресурсов в конструкторах
Правило 11. Не распространяйте обработку исключений за пределы деструктора
Правило 12. Отличайте генерацию исключения от передачи параметра или вызова виртуальной функции
Правило 13. Перехватывайте исключения, передаваемые по ссылке
Правило 14. Разумно используйте спецификации исключений
Правило 15. Оценивайте затраты на обработку исключений

Глава 4. Эффективность

Правило 16. Не забывайте о правиле "80-20"
Правило 17. Используйте отложенные вычисления
Правило 18. Снижайте затраты на ожидаемые вычисления
Правило 19. Изучите причины возникновения временных объектов
Правило 20. Облегчайте оптимизацию возвращаемого значения
Правило 21. Используйте перегрузку, чтобы избежать неявного преобразования типов
Правило 22. По возможности применяйте оператор присваивания вместо отдельного оператора
Правило 23. Используйте разные библиотеки
Правило 24. Учитывайте затраты, связанные с виртуальными функциями, множественным наследованием, виртуальными базовыми классами и RTTI

Глава 5. Приемы

Правило 25. Делайте виртуальными конструкторы и функции, не являющиеся членами класса
Правило 26. Ограничивайте число объектов в классе
Правило 27. В зависимости от ситуации требуйте или запрещайте размещать объекты в куче
Правило 28. Используйте интеллектуальные указатели
Правило 29. Используйте подсчет ссылок
Правило 30. Применяйте рroxy-классы
Правило 31. Создавайте функции, виртуальные по отношению более чем к одному объекту

Глава 6. Разное

Правило 32. Программируйте, заглядывая в будущее
Правило 33. Делайте нетерминальные классы абстрактными
Правило 34. Умейте использовать в одной программе C и C++
Правило 35. Ознакомьтесь со стандартом языка

Приложение 1. Список рекомендуемой литературы

Приложение 2. Реализация шаблона auto_ptr

Комментарии

Игорь Сухов

Вторая книга Скотта Мейерса получилась такой же интересной и не менее полезной чем "первая". Все тот же увлекательный стиль изложения - книга читается как детектив. Никакой воды - все быстро, четко и просто. Прочитав ее, смело начинайте уговаривать знакомых издателей =) чтобы они взялись за перевод его нового бестселлера "Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library", который, к нашему всеобщему сожалению, доступен только в оригинале.