Эффективное использование C++

Мейерс С.

В книге приводятся практические рекомендации по проектированию и программированию на языке C++. Изложены правила, позволяющие программисту сделать выбор между различными методами реализации программы - наследованием и шаблонами, шаблонами и указателями на базовые классы, открытым и закрытым наследованием, закрытым наследованием и вложенными классами, виртуальными и невиртуальными функциями и т.п. Для иллюстрации всех принципов используются новейшие языковые средства из стандарта ISO/ANSI C++ - внутриклассовая инициализация констант, пространства имен и шаблоны-члены класса. Рассматривается стандартная библиотека шаблонов и классы, подобные string и vector.

Издательства: Питер, ДМК Пресс, 2006 г.

ISBN 5-469-01213-1, 0-201-92488-9

Количество страниц: 240.

Содержание книги «Эффективное использование C++»:

  • 9 Предисловие
  • 16 Введение
  • 26 Глава 1. Переход от C к C++
    • 26 Правило 1. Предпочитайте const и inline использованию #define
    • 29 Правило 2. Предпочитайте <iostream> использованию <stdio.h>
    • 31 Правило 3. Предпочитайте new и delete использованию malloc и free
    • 33 Правило 4. Предпочитайте комментарии в стиле C++
  • 34 Глава 2. Управление памятью
    • 34 Правило 5. Используйте одинаковые формы new и delete
    • 36 Правило 6. Используйте delete в деструкторах для указателей членов
    • 37 Правило 7. Будьте готовы к нехватке памяти
    • 43 Правило 8. При написании операторов new и delete придерживайтесь ряда простых правил
    • 46 Правило 9. Старайтесь не скрывать "нормальную" форму new
    • 48 Правило 10. Если вы написали оператор new, напишите и оператор delete
  • 55 Глава 3. Конструкторы, деструкторы и операторы присваивания
    • 55 Правило 11. Для классов с динамическим выделением памяти объявляйте копирующий конструктор и оператор присваивания
    • 58 Правило 12. Предпочитайте инициализацию присваиванию в конструкторах
    • 62 Правило 13. Перечисляйте члены в списке инициализации в порядке их объявления
    • 63 Правило 14. Убедитесь, что базовые классы имеют виртуальные деструкторы
    • 68 Правило 15. operator= должен возвращать ссылку на *this
    • 71 Правило 16. В operator= присваивайте значения всем элементам данных
    • 74 Правило 17. В operator= осуществляйте проверку на присваивание самому себе
  • 79 Глава 4. Классы и функции: проектирование и объявление
    • 80 Правило 18. Стремитесь к таким интерфейсам классов, которые будут полными и минимальными
    • 84 Правило 19. Проводите различие между функциями-членами, функциями, не являющимися членами класса, и дружественными функциями
    • 89 Правило 20. Избегайте данных в открытом интерфейсе
    • 90 Правило 21. Везде, где только можно, используйте const
    • 96 Правило 22. Предпочитайте передачу параметров по ссылке передаче по значению
    • 99 Правило 23. Не пытайтесь вернуть ссылку, когда вы должны вернуть объект
    • 103 Правило 24. Тщательно обдумывайте выбор между перегрузкой функции и аргументами по умолчанию
    • 107 Правило 25. Избегайте перегрузки по указателю и численному типу
    • 110 Правило 26. Примите меры предосторожности против потенциальной неоднозначности
    • 112 Правило 27. Явно запрещайте использование нежелательных функций-членов, создаваемых компилятором по умолчанию
    • 113 Правило 28. Расчленяйте глобальное пространство имен
  • 119 Глава 5. Классы и функции: реализация
    • 119 Правило 29. Избегайте возврата "дескрипторов" внутренних данных
    • 124 Правило 30. Не используйте функции-члены, возвращающие неконстантные указатели или ссылки на члены класса с более ограниченным доступом
    • 126 Правило 31. Никогда не возвращайте ссылку на локальный объект или разыменованный указатель, инициализированный внутри функции посредством new
    • 129 Правило 32. Откладывайте определение переменных до последнего момента
    • 131 Правило 33. Тщательно обдумывайте использование встраиваемых функций
    • 136 Правило 34. Уменьшайте зависимости файлов при компиляции
  • 145 Глава 6. Наследование и объектно-ориентированное проектирование
    • 146 Правило 35. Используйте открытое наследование для моделирования отношения "есть разновидность"
    • 151 Правило 36. Различайте наследование интерфейса и наследование реализации
    • 158 Правило 37. Никогда не переопределяйте наследуемые невиртуальные функции
    • 160 Правило 38. Никогда не переопределяйте наследуемое значение аргумента по умолчанию
    • 162 Правило 39. Избегайте приведения типов вниз по иерархии наследования
    • 169 Правило 40. Моделируйте отношения "содержит" и "реализуется посредством" с помощью вложения
    • 172 Правило 41. Различайте наследование и шаблоны
    • 176 Правило 42. Продумывайте подход к использованию закрытого наследования
    • 181 Правило 43. Продумывайте подход к использованию множественного наследования
    • 193 Правило 44. Говорите то, что думаете, понимайте то, что говорите
  • 195 Глава 7. Другие принципы
    • 195 Правило 45. Необходимо знать, какие функции неявно создает и вызывает C++
    • 198 Правило 46. Предпочитайте ошибки во время компиляции ошибкам во время выполнения
    • 201 Правило 47. Обеспечьте инициализацию нелокальных статических объектов до их использования
    • 205 Правило 48. Уделяйте внимание предупреждениям компилятора
    • 206 Правило 49. Ознакомьтесь со стандартной библиотекой
    • 213 Правило 50. Старайтесь понимать цели C++
  • 218 Послесловие
  • 220 Алфавитный указатель

Инструкция как скачать книгу Мейерс С.: Эффективное использование C++ в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Эффективное использование C++
Рейтинг книги:
2 голоса
516

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: