Главная    Ex Libris    Книги    Журналы    Статьи    Серии    Каталог    Wanted    Загрузка    ХудЛит    Справка    Поиск по индексам    Поиск    Форум   
blank
Авторизация

       
blank
Поиск по указателям

blank
blank
blank
Красота
blank
Мейерс С. — Эффективное использование C++. 50 рекомендаций по улучшению ваших программ и проектов
Мейерс С. — Эффективное использование C++. 50 рекомендаций по улучшению ваших программ и проектов



Обсудите книгу на научном форуме



Нашли опечатку?
Выделите ее мышкой и нажмите Ctrl+Enter


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

Автор: Мейерс С.

Аннотация:

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


Язык: ru

Рубрика: Computer science/

Статус предметного указателя: Готов указатель с номерами страниц

ed2k: ed2k stats

Год издания: 2000

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

Добавлена в каталог: 23.07.2006

Операции: Положить на полку | Скопировать ссылку для форума | Скопировать ID
blank
Предметный указатель
Объявления вместо определений      139
Объявления классов      18
Объявления объектов      18
Объявления функций      18
Объявления шаблонов      18
Обычные виртуальные функции      153
Ограничения доступа при наследовании      111 112
Оккам, Уильям      192
Оператор switch по типу объекта в сравнении с виртуальными функциями      164
Операторы и аппроксимации пространства имен      117
Определения классов      19
Определения классов зависимости при компиляции      139
Определения классов и объявления классов      140
Определения классов, размеры объектов      138
Определения неявно генерируемых функций      196
Определения новых типов для аппроксимации пространств имен      116
Определения новых типов и new/delete      35
Определения объектов      19 129
Определения переменных      129
Определения переменных в операторе if      168
Определения статических членов класса      40
Определения функций      19
Определения чисто виртуальных функций      152 156
Определения шаблонов      19
Определения, замена объявлениями      139
Оптимизация посредством использования виртуальных функций      190
Оптимизация при компиляции      97 103 131 212
Оптимизация при компиляции, встраиваемые функции      131
Отделение интерфейса от реализации      137
Открытое наследование      146 194
Отладчики и #define      27
Отладчики и встраиваемые функции      136
Отношение «есть разновидность»      146
Отношение «реализуется посредством»      169 171 176 179 180 192
Отношение «содержит»      169
Ошибки во время выполнения      107 148 198
Ошибки во время выполнения, переход к ошибкам во время компиляции      199
Ошибки во время выполнения, стандартная библиотека C++      212
Ошибки во время компиляции      107 198
Ошибки во время компиляции, преимущества      201
Ошибки во время компоновки      27 67 133 198 201
Ошибки, средства библиотеки      212
Память, схема размещения объектов      184
Параллельные вычисления      206
Паскаль      164
Перегрузка const      92
Перегрузка и определение аргументов по умолчанию      103
Передача маленьких объектов      99
Передача параметров по значению и конструкторы копирования      20
Передача по значению      96
Передача по значению и конструкторы копирования      96
Передача по значению и эффективность      96
Передача по ссылке      98
Передача по ссылке и эффективность      98
Переменные      129
Переменные в операторах if      168
Переменные и конструкторы      129
Переобъявление виртуальных функций      175
Переопределение виртуальных функций      182
Переопределение унаследованных невиртуальных функций      158
Плата      96
Плохое проектирование и множественное наследование      190
Плохое проектирование и повторное использование кода      190
Побитово константные функции-члены      93
Побитовое копирование при присваивании      56 196
Побитовое копирование при создании копированием      57 196
Поведение модификация путем использования виртуальных функций      190
Повторное использование разработанной стратегии управления памятью      53
Поддержка кода и множественное наследование      193
Поддержка кода и понижающее приведение типов      164
Поддержка кода, большие интерфейсы классов      81
Поддержка кода, добавление членов класса      36
Поддержка кода, общие базовые классы      154
Поддержка кода, список членов инициализации      61
Поддержка кода, ссылки на функции      117
Подсчет ссылок      57
Полный интерфейс      81 171
Пользователи определение термина      23
Понижающее приведение типов безопасное      167
Понижающее приведение типов, использование с библиотеками, доступными только для чтения      167
Понижающее приведение типов, определение термина      164
Порядок инициализации в иерархии      63
Порядок инициализации статических объектов      31
Порядок инициализации, значимость      202
Последовательность подхода и открытые интерфейсы      89
Последовательность, совместимость со встроенными типами      69 80 83 92
Потенциальная неоднозначность      110
Потенциальная неоднозначность и пространства имен      115
Почленное копирование в конструкторе      196
Почленное присваивание      196
Пошаговая отладка и встраивание функций      136
Правило «80-20»      136 157
Предупреждения компилятора      205
Преобразования типов      87
Преобразования типов и закрытое наследование      176
Преобразования типов к ссылке      73
Преобразования типов, обход константности      120
Преобразования типов, отбрасывание константности      95
Препроцессор      37 107
Префиксы имен в библиотеках      114
Приведение типов      164 182
Приведение типов, использование с библиотеками, доступными только для чтения      168
Приведение типов, как избежать приведения типов      167
Приведение типов, новая форма      24
Приведение типов, понижающее приведение      164
Приведение типов, преимущества новой формы      23
Примеры новых форм преобразований типов const_cast      95 96
Примеры новых форм преобразований типов static_cast      31
Примеры новых форм приведения типов dynamic_cast      168
Примеси      41
Присваивание в сравнении с инициализацией      21
Присваивание и массивы      83
Присваивание самого себя      74
Присваивание, запрет      58
Проблема усечения объектов      98
Пробуксовка и встраиваемые функции      131
Проверка на допустимость значения как избежать      199
Проект международного стандарта      214
Проектирование классов и типов      79
Проектирование классов плохое и множественное наследование      190
Проектирование классов плохое и повторное использование кода      190
Проектирование классов, классы и функции      79
Проектирование объектно-ориентированное      145
Проектирование, приводящее к противоречиям      159
Производные классы и operator=      71
Производные классы, реализация деструкторов      135
Производные классы, сокрытие имен базовых классов      216
Пространства имен      114
Пространства имен, аппроксимация      116
Пространства имен, потенциальная неоднозначность      115
Пулы памяти      53
Равенство адресов      77
Равенство значений      76
Разделители полей, реализация с помощью виртуальных функций      187
Раздельная компиляция влияние на особенности языка C++      211 214
Размер классов      45
Размер объектов      138
Размещение объектов в памяти      184
Реализация классов-протоколов      143
Реализация конструкторов и деструкторов производных классов      134
Реализация по умолчанию виртуальных функций, опасность      153
Реализация по умолчанию конструктора копирования      196
Реализация по умолчанию, operator=      196
Реализация, наследование      151
Реализация, отделение от интерфейса      154
Реализация, сокрытие      139
Рекурсивные функции и встраивание      132
Решение проблемы инициализации нелокальных статических объектов      202
Самостоятельное управление памятью      53
Символ подчеркивания, соглашение имен      137
Синглетон      203
Скалярное произведение      212
Сложности при множественном наследовании      181
Смежные разности      212
Смешанная арифметика      85 87
Смешивание free и delete      32
Смешивание new и malloc      32
Смешивание открытого и закрытого наследования      188
Совместимость с C как цель при создании C++      213
Совместимость с другими языками и vptr      65
Совмещение имен      57 77 99
Соглашения для имен      24 132 137
Создание локальных объектов      126
Создание объектов по умолчанию в сравнении с конструктором      130
Создание объектов по умолчанию, как избежать      130
Создание с аргументами и без аргументов      130
Создание, этапы      31
Сокрытие реализации класса      139
Спецификация исключений      79
Спецификация исключений, поведение по умолчанию при нарушении      39
Список аргументов и преобразования типов      87
Список инициализации членов класса и конструкторы базового класса      185
Срезы массивов в STL      212
Ссылки и зависимости при компиляции      140
Ссылки на статические объекты значение, возвращаемое функцией      101
Ссылки на указатели и указатели на указатели      26
Ссылки, внутренняя реализация      99
Ссылки, значение      100
Ссылки, как аргументы      97
Ссылки, как дескрипторы недоступных членов классов      122
Ссылки, как тип, возвращаемый функцией      97 98
Ссылки, как члены классов      59
Ссылки, на функции      117
Ссылки, обход ограничений доступа      124
Ссылки, приведение к      73
Стандартная библиотека C      31 206 207 209 211
Стандартная библиотека C++      206
Стандартная библиотека C++ <iosfwd>      140
Стандартная библиотека C++ basic_ostream, шаблон      207
Стандартная библиотека C++ istream, typedef      208
Стандартная библиотека C++ logic_error      129
Стандартная библиотека C++ max      29
Стандартная библиотека C++ numeric_Jimits      105
Стандартная библиотека C++ ostream, typedef      208
Стандартная библиотека C++ push_back, алгоритм      171
Стандартная библиотека C++ string      21 207
Стандартная библиотека C++ vector      83
Стандартная библиотека C++ vector, шаблон      62 66 83 208
Стандартная библиотека C++ и пространства имен      116
Стандартная библиотека C++, алгоритмы      210
Стандартная библиотека C++, гарантии эффективности      210 211
Стандартная библиотека C++, использование средств выделения памяти      208
Стандартная библиотека C++, итерация по контейнерам      171
Стандартная библиотека C++, контейнерные классы      163 171 210
Стандартная библиотека C++, поддержка диагностики      212
Стандартная библиотека C++, поддержка для срезов массивов      212
Стандартная библиотека C++, поддержка интернационализации      211
Стандартная библиотека C++, поддержка численных вычислений      211
Стандартная библиотека C++, понятие последовательности      210
Стандартная библиотека C++, потоки ввода-вывода      31 209
Стандартная библиотека C++, свойства контейнеров      163
Стандартная библиотека C++, скалярное произведение      212
Стандартная библиотека C++, смежные разности      212
Стандартная библиотека C++, фасеты      211
Стандартная библиотека C++, хэш-таблицы      210
Стандартная библиотека шаблонов (STL)      212
Стандартные имена заголовков      206
Стандартные контейнеры      163
Статические объекты возвращение ссылки      101
Статические типы, определение термина      160
Статические функции, сгенерированные из встраиваемых      133
Статические члены классов      125
Статические члены классов, инициализация      40 61 63
Статические члены классов, инициализация в классах      27
Статические члены классов, использование для аппроксимации пространств имен      116
Статические члены классов, константные функции-члены      93
Статический массив возвращение ссылки      102
Статическое связывание аргументов по умолчанию      161
Статическое связывание невиртуальных функций      159
Стоимость виртуальных базовых классов      184
Стоимость классов-дескрипторов      144
Стоимость классов-протоколов      144
Стоимость неиспользуемых объектов      129
Стоимость неподставляемых встраиваемых функций      133
Стоимость присваивания как удаления плюс создания      103
Стоимость уменьшения зависимостей времени компиляции      144
Стоимость, инициализация и присваивание      60
Строгий контроль типов реализация      178
Строки C и C++стандартные заголовочные файлы      207
Структуры для аппроксимации пространств имен      116
Структуры и конструкторы      173
Теория хаоса      203
Терминология, принятая в этой книге      18
Термины (определения), вложение      169
Термины, динамический тип      161
Термины, динамическое связывание      161
Термины, единица трансляции      201
Термины, класс Чеширский Кот      141
Термины, классы-дескрипторы      140
Термины, классы-конверты      140
Термины, классы-протоколы      141
Термины, множественное наследование      181
Термины, нелокальные статические объекты      202
Термины, отношение «есть разновидность»      146
Термины, отношение «реализуется посредством»      171
Термины, отношение «содержит»      169
Термины, пользователь      23
Термины, понижающее приведение      164
Термины, статический тип      160
Термины, целочисленные типы      27
Тип this      95
Тип преобразования типов      80 86
Тип преобразования типов long int и int      108
Тип преобразования типов и глобальные функции      87
Тип преобразования типов и неоднозначность      110
Тип преобразования типов, неявные      71 84 86 87
Тип преобразования типов, функции-члены      87
Тип, проектирование      79
Типы добавление новых для облегчения обнаружения ошибок      199
Типы закрытые      173
Типы и использование операторов switch в сравнении с виртуальными функциями      64
Типы целочисленные, определение термина      27
Точки останова и встраиваемые функции      136
Удаление объектов и виртуальные деструкторы      63
Указатели const      91
Указатели const в заголовочном файле      27
Указатели const функции      117
Указатели в контейнерах      177
Указатели и зависимости времени компиляции      140
Указатели и обход ограничений доступа      124
Указатели и побитово константные функции-члены      93
Указатели на виртуальную таблицу      65
Указатели на один или несколько объектов и delete      35 58
Указатели на указатели в сравнении со ссылками на указатели      26
Указатели на функции-члены      125
Указатели на члены класса      109
Указатели типа void*      107 175 177
Указатели типа void* и закрытое наследование      179
Указатели типа void* и контроль типов      178
Указатели, наличие нескольких указателей на один объект и деструкторы      178
Указатели-члены и конструкторы копирования      57
Указатели-члены и оператор =      56
Уменьшение зависимостей времени компиляции      136
Управление памятью пользователем и эффективность      51
Условные операторы и виртуальные функции      164
Условные операторы, определение переменных      168
Утечка памяти      36 121 127
Утечка памяти в сравнении с пулами памяти      52
Утечка памяти, примеры      56 101
Утечка памяти, причины возникновения      52
1 2 3 4
blank
Реклама
blank
blank
HR
@Mail.ru
       © Электронная библиотека попечительского совета мехмата МГУ, 2004-2024
Электронная библиотека мехмата МГУ | Valid HTML 4.01! | Valid CSS! О проекте