Авторизация
Поиск по указателям
Уилсон М. — C++: практический подход к решению проблем программирования
Обсудите книгу на научном форуме
Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Название: C++: практический подход к решению проблем программирования
Автор: Уилсон М.
Аннотация: C++ - изумительных язык, но не идеальный. Если вы давно занимаетесь разработками на C++, эта книга поможет вам по-новому посмотреть на те сложные проблемы, с которыми приходится сталкиваться при программировании, и освоить мощные методы, которые вы никогда раньше не применяли. Если вы новичок в C++, то научитесь принципам программирования, которые позволят вам более эффективно реализовывать все ваши проекты. В ходе чтения книги вы научитесь:
• преодолевать недостатки системы типов C++;
• обеспечивать выполнение требований проекта программного обеспечения с помощью ограничений, соглашений и утверждений;
• правильно обрабатывать ситуации, не оговоренные стандартом, включая проблемы, связанные с динамическими библиотеками, статическими объектами и поточной организацией вычислений;
• обеспечивать совместимость динамически загружаемых компонентов на уровне двоичных модулей; понимать недостатки неявных преобразований и связанные с ними затраты и применять альтернативные подходы; повышать совместимость различных компиляторов, библиотек и операционных сред; помогать компилятору обнаруживать больше ошибок и работать более эффективно;
• понимать, какие аспекты стиля влияют на надежность;
• применять механизм захвата ресурсов при инициализации при решении различных задач;
• умело обращаться со странной связью, временами возникающей между массивами и указателями;
• использовать шаблонное программирование для повышения гибкости и устойчивости;
• расширять C++, в том числе быстрой конкатенацией строк, настоящими NULL-указателями, гибкими буферами памяти, свойствами, многомерными массивами и диапазонами.
Прилагаемый компакт-диск содержит много различной ценной информации: компиляторы, библиотеки, тестовые программы, инструментальные средства и служебные программы, а также подборку журнальных статей автора.
Язык:
Статус предметного указателя: Готов указатель с номерами страниц
ed2k: ed2k stats
Год издания: 2006
Количество страниц: 736
Добавлена в каталог: 24.03.2009
Операции: Положить на полку |
Скопировать ссылку для форума | Скопировать ID
Предметный указатель
Операторы, new 66—67
Операторы, operator [] 284
Операторы, индексации 281—282 601 607
Операторы, инкремента, постфиксный 373—374
Операторы, копирующего присваивания 67—68 69 69 94 290 354 365 482 652
Операторы, неявного преобразования 283
Операторы, преобразования 306 311 342 343—344 344—345 348 443 550 551—552 553 584 647 650 653 656
Операторы, присваивания 548—549 647
Операторы, свободных функций 72
Операторы, сравнения на (не)равенство 107
Операторы, сравнения на равенство 358
Операторы, сравнения «меньше, чем» 106
Операции 111 190—191 191 283 353
Операции, Method2() 195
Операции, Methodl() 195
Операции, арифметические 529
Операции, неделимые 192—194 202 203—204 237
Операции, неделимые целочисленные 191—192 201—202 208
Операции, связанные с конструктором 1
Операционная среда 49 136 148 1
Операционные системы 137 138 139 144 144 148 153 159—160 176 179 179 181 183 188 201 212 219 271 371
Операционные системы, поставщики 186
Определение 169 333
Определения типов 377—378
Опрос 197
Оптимизация 137 220 243—244 244—245 248—249 249 251 251—253 253 254—255 256 256—257 548
Оптимизация возвращаемых значений (return value optimization-RVO) 245 (см. также «RVO»)
Оптимизация именованного возвращаемого значения (named return value optimization-NRVO) 247 (см. также «NRVO»)
Оптимизация пустой базы (empty base optimization-EBO) 249 (см. также «EBO»)
Оптимизация пустых производных классов (empty derived optimization-EDO) 252—253 (см. также «EDO»)
Освобождение ресурса при уничтожении 86—92. (см. также «RRII»)
Отдельная ячейка памяти 190
Отказ на этапе выполнения 58—59 428 428
Открытые методы 53
Открытые типы 101 102—103
Отладка 55—56 527
Отладка, комплексное тестирование 38
Отладка, отладочная или тестовая версии 54—56 62 244
Отладка, программный код режима отладки 60
Отладка, путей программного кода 244—245
Отладка, системы 38
Отладка, функциональность 62
Ошибка компиляции 227
Ошибки этапа выполнения 58—59
Память 58 165
Память, нехватка 135
Память, освобождение 187
Память, распределение 187—188
Память, условие нехватки 133
Параметризация 39 89 251 295 407 411 440 461 468 479 489 603 610 610 627 642 657
Параметры 50—51 68 90 263 381 461—462 486—487 503 569 571—572 607 633
Параметры, значение по умолчанию 155
Параметры, значения не по умолчанию 458
Параметры, отдельные выходные 51
Паттерсон, Скотт (Patterson, Scott) 86
Перегрузка 146—147 148 155
Переменная возвращаемого значения retVal 51
Переменные 40 51 119 195 210 265 362 363—364 365—366 371 373—374 391 497 578—579 591
Переменные инициализации 360—362
Переменные, автоматические 92—93
Переменные, внешние 215
Переменные, глобальные 366 578
Переменные, глобальные потоковые 209
Переменные, глобальные статические 219
Переменные, константные 73—74
Переменные, константные переменные-члены 73 78
Переменные, локальные потоковые 209
Переменные, нелокальные статические 220—221
Переменные, нессылочные переменныечлены 73
Переменные, нессылочные скалярные переменные-члены 73
Переменные, объявления 262
Переменные, открытые переменные-члены 49—50
Переменные, переменные-итераторы 373—374
Переменные, переменные-члены 74—75 77 77—78 103—104 252
Переменные, переменные-члены массивов 73
Переменные, системные 122
Переменные, состояний 189—190
Переменные, спина 198
Переменные, среды 374 439
Переменные, среды PATH 179
Переменные, ссылок 395
Переменные, ссылочные переменные-члены 73
Переменные, статические 366 578—579
Переменные, статические guard 237
Переменные, статические переменные-члены 219
Переменные, стека 578—579 581—582
Переменные, счетчика-часового 120
Переменные, указателей 395
Переменные, фреймовые и глобальные 71
Переносимые 172—173
Перри, Ли и Скотт (Perry, Leigh, and Scott) 470
Поддержка на этапе выполнения 328
Подсистемы регистрации событий 463
Подсчет количества вызовов 129
Поиск Кенига 125 447—448 448 449
Поиск, зависимый от аргументов см. «Поиск Кенига»
Полиморфизм 349 476—477 627
Полиморфизм на этапе выполнения 147 162 163 470 473 640
Полиморфизм, моделируемый на этапе компиляции 476—477
Посредник запроса типового объекта (Common Object Request Broker Architecture-CORBA) 331
Постоянная проверка состояния 197
Постусловия 48—49 50 52 55 постусловия»)
Постусловия, объекты-мониторы 51
Постусловия, подтверждение 53
Предупреждения об усечениях 59
Предусловия 48—50 50 52—53 55—56
Предусловия, тестирование 55—56
Преобразования 70—71 275 284 343—344 345—346 396—397 398 410—411 413 426 431—432 438 450 455 468 493 495 495 501 530 531 533—534 553 554 559—560 561 569—570 577 584 600 666
Преобразования, библиотечные функции 565
Преобразования, неявные 395—396
Преобразования, операторы 666
Преобразования, прокладки 574
Препроцессор 52 53—54 55 61 207 271 284 393 434 436 437
Препроцессор, разграничение действий 193 204 270 474 486 543 547
Препроцессор, символы 307—308 350
Препроцессор, условные операторы 170 449
Приведение в С-стиле 315—316
Приведения типов 393—394 395—428
Прикладной программный код 430 448
Прикрепляемые классы 393—394 468 481 482 486—487 490
Принудительные соглашения этапа выполнения 48
Проблема упорядочения статических объектов 183
Проблема «мертвых» ссылок 228
Проверка возвращаемых значений 53
Проверка инвариантов отладочной версии 58
Проверка ошибок этапа выполнения 58
Программные интерфейсы 58 80 82—83 84 86 102 111 119 129 130—131 132 152 158 184 185 210—211 213 230 231—233 234—235 238—239 262—263 276 302—303 310 378 444 453 461 463 464 465 565 578 582 595 597
Программные интерфейсы библиотек состояния 80
Программные интерфейсы неделимых целочисленных операций 193 198 204
Программные интерфейсы операционной системы 148
Программные интерфейсы с подсчетом ссылок 232
Программные интерфейсы системы Synesis, BufferStore 114
Программные интерфейсы языка С 108—109 128—130 157—158 213 302 336—337 453 458—459 550
Программные интерфейсы, TSS 217—218
Программные интерфейсы, подход на основе 162
Программные интерфейсы, решение с применением счетчиков 227
Программные интерфейсы, С-совместимые 148
Программные интерфейсы, синхронизация 478—479
Программные интерфейсы, собственные ресурсы 129
Программные интерфейсы, типы 380—381
Программные интерфейсы, уровни стабильности 184
Программные интерфейсы, функции 48—50 82 96 98 100—101 238—239 275—276
Программные интерфейсы, функциональная модель 82
Программные интерфейсы, функция инициализации 129 130
Программный код сервера 174
Программный код, обеспечивающий надлежащую обработку в рабочей версии 59
Продолжительность жизни 113—115 132 168 183—184 224 226—227 273 332 421 433—434 444
Продолжительность жизни возвращаемых значений 444
Прокладки 346—348 357 357 393—394 394 554 560 613 614 677—678
Прокладки, атрибутов 502 554 613
Прокладки, логические 417
Прокладки, преобразования 465 574
Прокси-оболочки 81 83—84 85 86
Пространства имен 46 125—126 148 154 208 219 224 225 265 315 366 368 375 376 440 447—448 448—449 449—450 450—451 455 475 516—517 517 603 622—623 640
Пространства имен, глобальные 219 388 448 449
Пространство компоновки 181—182
Протокол сетевого времени (NTP-Network Time Protocol) 645
Процессоры 190—191 191—192
Процессоры, однопроцессорные машины 200
Рабочие версии 56 57
Размещение в памяти 164—165 300
Размещение в памяти, модель 164
Размещение в памяти, наследование 251
Размещение в памяти, проблемы 146—147
Размещение в памяти, С-структуры 163
Размещение в памяти, схема 299
Распределение памяти в ограниченной области 58
Распределитель памяти на этапе выполнения 557
Расширение имен 139 146—148 175 185
Расширение имен, схемы 149 180—181 188
Расширенные имена 149 150 179
Реализации 169—170 170 214 229 235 242 244—245 255—256 261 332—333 353 401 413 423 425 439 442 450 463 464 470—471 505 505—506 508 510 512 516 523 535 538 552 565 568 619 635—636 640—641 645 648—649 654 656—657 666 675 677
Реализации библиотек 612
Реализации, TLS платформы Win32 217
Реализации, класса 172—173 392
Реализации, класса строки 502
Реализации, метода 365 630
Реализации, на основе шаблонов 369
Реализации, оператора 174
Реализации, сервера 168
Реализации, файла 225
Регистры процессора 190—191
Ресурсы 68 80—81 83 86 89—90 91—92 92—93 114 119—120 124 186—188
Ресурсы, выделенные 68
Ресурсы, захват 94
Ресурсы, инкапсуляция 93 94 97—98
Ресурсы, обработчик 88
Ресурсы, ссылки 81
Ресурсы, управление 157
Ресурсы, управляемые 94
Ресурсы, утечка 129
Ретрансляция аргументов см. «Ретранслирующие функции»
Родительские классы 52
Родной интерфейс Java (Java Native Interface-JNI) 148 331 348
С подсчетом ссылок 596
Саттер, Герб (Sutter, Herb) 47 117
Свободная память 66
Свойства 50 644—645 679—680
Связывание 450
Связывание, на этапе компиляции 111—112
Связывание, на этапе компоновки 111
Связывание, физическое 453
Связь, через сокет 378
Семантическое соответствие 452
Семафоры 189
Сериализация, компонент 383
Сериализация, программный код 384
Символы 142—143
Символы, имя 148 154
Символьные буферы 443 444
Символьные буферы, строки 364
Символьные буферы, типы 160
Символьные строки 262—263
Синглетон Александреску 228
Синглетон Майерса 227
Синглетоны 227—228 231 233—234 234—235
Синглетоны, Local 238
Синдромом NIH (Not Invented Here-«сюда нельзя вмешиваться») 176
Синхронизация 190 204—205 208
Синхронизация, блокировка объекта 206
Синхронизация, механизм 198
Синхронизация, примитивы 204—205
Синхронизация, требования 195
Система управления версиями 352
Системная библиотека, каталоги 179
Системная библиотека, кэш 179
Системные библиотеки 181—182
Системные пути 179
Системные счетчики 122
Системный вызов 256
Скалярные типы 21
Соглашения 37—38
Соглашения о форматах вызова 112 139 142 147—148 159 160
Соглашения этапа выполнения 55—56
Соглашения, синтаксис 37
Соответствие 451 451—452
Соответствие, семантическое 451—452
Соответствие, структурное 451—452
Составные типы 21
Состояние программы 124
Состояния 119—120
Специализация 43
Специализация, полная 44
Специализация, частичная 44
Специализированные 425
Специальная память потока (TSS-thread-specific storage) 183 198 209 564 564—565 566 567 568
Специальные данные потока (TSD-thread-specific data) 210 (см. также «TSD»)
Спецификаторы 371
Списки инициализации 74—75 77 77 79
Список инициализации членов (member initializer list-MIL) 73 75
Среда функционирования 265 266—267 270 350 596
Среда функционирования, целевая 371
Ссылки 67 151 403—404 404—405 406 425—426 482 484—485 486—487 530 537 559—560 654 654—655
Ссылки, в программном коде 183
Ссылки, висячие 419
Ссылки, и указатели/значения 487
Ссылки, неконстантные 484—485 487—488 538
Ссылки, подсчет 191 331 332—333 434 473
Ссылки, подсчет, ненадлежащее применение 424
Ссылки, счетчики 92 117 129 235
Ссылки, типы 397—398 550
Стандартная библиотека шаблонов 373 436 557
Статическая инициализация 220
Статическая компоновка 149 150—151
Статическая область видимости 322
Статические библиотеки 135 143 144 181—182
Статические и динамические библиотеки 111
Статические методы 171—172 658
Статические объекты 171—172 181—182 219 220—221 222 228 230 230—231 235 330
Статические утверждения 47 63 64 65 409 571—572 «Утверждения»)
Статические утверждения, switch-форма 64—65
Статические утверждения, форма с битовым полем 65
Статические утверждения, форма с недопустимой размерностью массива 44 63—65
Статические члены 366
Статические экземпляры 135
Статическое конструирование 567
Странно-рекуррентная модель шаблона (CRTP) 477
Стратегии, начальные, подсчета ссылок 474
Стратегии, синхронизации 474 475
Стратегии, «примесные» 474
Страуструп, Бьерн (Stroustrup, Bjarne) (Босс!) 39 54 98—99 154 410 425 504 571
Строки 76 97 99—101 107 114 209 247 317—321 400 430—431 465—466 483—484 559—560
Строки, класс, выделяющий лексемы из 465—466
Строки, класса 303—304 334—335 502 505 506—507 508—509 512 512—513 515 516—517 517—518
Строки, конкатенация 391 491
Строки, константа 76
Строки, литеральные пустые 76
Строки, модель 320 439 442 466 467
Строки, представления 569
Строки, преобразования 559—560 570
Строки, С-стиля 430—431 442—443 447 506 511.
Строки, содержимое 443—444
Строки, фиксированного размера 376
Строки, функции 231—232
Структурное соответствие 451—452
Счетчик Шварца 230 230 234 234 237 476
Тестирование 79
Тестирование, бета тестирование системы 38
Тестирование, блочное 38
Тестирование, система отладки 38
Реклама