Программирование на C / C++ / Ален И. Голуб. Правила программирования на Си и Си++ [pdf]
.pdfС++ для начинающих |
1175 |
|
в обобщенных алгоритмах перестановок, 586 |
недопустимость присваивания другому |
|
в обобщенныых алгоритмах сравнения, 586 |
массиву, 115 |
|
при сортировке строк, 366–75 |
недопустимость ссылок на массив, 115 |
|
литеральные константы, 76–78 |
обход |
|
C-строки |
с помощью манипуляции указателем, 118 |
|
сравнение с символьными литералами, 114 |
с помощью пары итераторов, 263–64 |
|
f суффикс, 77 |
объектов класса, 689–96 |
|
U суффикс, 76 |
определение, 30, 113 |
|
с плавающей точкой, 77 |
перегруженный оператор |
|
логические встроенные операторы, 145–48 |
delete[], 749–51 |
|
оператор ИЛИ (||), 146 |
new[], 749–51 |
|
оператор НЕ (!), 147 |
поддержка обобщенными алгоритмами, 553 |
|
логические объекты-функции |
размер, не является частью типа параметра, |
|
logical_and, 572 |
335 |
|
logical_not, 572 |
связь с типом указателей, 118–20 |
|
logical_or, 572 |
указателей на функции, 369–70 |
|
локализация |
меньше, оператор |
|
влияние глобального объекта на, 349 |
поддержка в арифметических типах данных, |
|
константной переменной или объекта, 100 |
30 |
|
локальность объявления, 190, 385 |
требование о поддержке типом элементов |
|
на уровне файла, использование безымянного |
контейнера, 259 |
|
пространства имен, 419 |
минус(-) |
|
локальная область видимости, 376, 378–81 |
для выделения опций в командной строке, |
|
try-блок, 535 |
357 |
|
доступ к членам в глобальной области |
многоточие (...), 343–44 |
|
видимости, скрытым за локальными |
использование в типах функций, 367 |
|
объектами, 411 |
множество (set), контейнерный тип |
|
имена в пространстве имен, скрытые за |
set, заголовочный файл, 304 |
|
локальными объектами, 414 |
size(), 307 |
|
переменная, неинициализированная, 388 |
обход, 306–7 |
|
разрешение имени, 379 |
ограничение на изменение порядка, 587 |
|
локальные объекты, 388–92 |
определени, 304–6 |
|
проблема возврата ссылки на, 348 |
поиск элементов, 306 |
|
статические, 388, 390–92 |
сравнение с отображением, 292 |
|
|
модели компиляции |
|
М |
с разделением, 834–37 |
|
шаблонов класса |
||
|
||
массив(ы), 113–20 |
с включением, 833 |
|
в сравнении с векторами, 122 |
с разделением, 834–36 |
|
динамическое выделение и освобождение, |
шаблонов классов, 831–38 |
|
400–402 |
шаблонов функций, 494–98 |
|
массивов объектов классов, 691–94, 744– |
с включением, 494–95 |
|
53 |
с разделением, 495–97 |
|
индексирование, 31, 113–16 |
Н |
|
многомерных массивов, 116–17 |
||
отсутствие контроля выхода за границы |
наилучшая из устоявших функций, 442 |
|
диапазона, 116 |
||
инициализация, 31, 114–15 |
неинициализированный |
|
динамически выделенных массивов, 400 |
автоматический объект, 388 |
|
динамически выделенных массивов |
глобальный объект, 382 |
|
объектов класса, 690–94 |
локальный статический объект, 391 |
|
многомерных массивов, 116–17 |
неоднозначность |
|
недопустимость инициализации другим |
перегруженных |
|
массивом, 115 |
функций, диагносцирование во время |
|
использование оператора sizeof(), 159 |
разрешения перегрузки, 454 |
|
как параметры функций, 335–39 |
указателя, стандартные преобразования, 456 |
|
для передачи нескольких параметров, 350 |
шаблона функции |
|
многомерные, 338 |
аргумента, разрешение с помощью явной |
|
преобразование массива в указатель, 448 |
спецификации, 492 |
|
многомерные, 116–17 |
конкретизации, ошибка, 484 |
|
недопустимость использования auto_ptr, 395 |
конкретизация, опасность перегрузки, 505 |
|
недопустимость использования в качестве |
неявные преобразования типов, 176 |
|
возвращаемого значения функции, 324 |
новая строка () |
|
|
как escape-последовательность, 77 |
С++ для начинающих |
1176 |
О |
параллельный обход двух векторов, 296 |
область видимости, 376–81 |
объединение |
разновидность класса, 638–43 |
|
видимость класса, 645–52 |
объект(ы) |
и определение класса, 594 |
автоматические, 388–89 |
разрешение имен в, 649–52 |
объявление с ключевым словом register, |
глобальная область видимости, 376 |
389–90 |
и время жизни (глава), 376–428 |
глобальные |
и перегрузка, 434–38 |
и функции, 381–87 |
локальная область видимости, 378–81 |
сравнение с параметрами и |
обращение к скрытым членам глобальной |
возвращаемыми значениями функций, |
области видимости, 411 |
349–50 |
разрешение имен в, 379 |
использование памяти, 82 |
объявлений исключений в catch- |
локальные, 388–92 |
обработчиках, 540 |
определение, 87 |
параметра шаблона |
переменные как, 81 |
функции, 478–81 |
члены пространства имен, 407–8 |
пространства имен, 376 |
объектное программирование, 593 |
управляющих переменных в инструкции for, |
объектно-ориентированное программирование |
379 |
проектирование |
область видимости глобального пространства |
(пример), 46–55 |
имен, 376, 406 |
объекты-функции, 566–75 |
доступ к скрытым членам с помощью |
functional, заголовочный файл, 568 |
оператора разрешения области видимости, |
арифметические, 570 |
411 |
использование в обобщенных алгоритмах, |
обобщенные алгоритмы |
552 |
(глава), 552–92 |
источники, 568 |
algorithm, заголовочный файл, 584 |
логические, 572 |
numeric, заголовочный файл, 584 |
предопределенные, 568–70 |
алфавитный указатель (приложение), 1103– |
преимущества по сравнению с указателями |
94 |
на функции, 567 |
генерирования, 586 |
реализация, 573–75 |
использование итераторов, 575–83 |
сравнительные, 571 |
категории и описания, 583–87 |
Объекты-функции |
когда не надо использовать, 587–92 |
адапторы функций для, 573 |
модификации, 586 |
объявление |
независимость от типа, 552, 553 |
инструкция, 14 |
нотация для диапазона элементов, 583 |
объявления |
обзор, 552–56 |
базового класса, виртуальное, 976–78 |
объекты-функции как аргументы, 567 |
в части инициализации цикла for, 210 |
использование предопределенных |
видимость имени, вводимого объявлением, |
объектов-функций, 569 |
376 |
перестановки, 586 |
друзей, в шаблоне класса, 815–21 |
подстановки, 585 |
и определение, 382–83 |
пример использования, 556–66 |
инструкция, 189–92 |
работа с хипом, 587 |
исключения, 538 |
сравнения, 586 |
класса bitset, 167 |
удаления, 585 |
объектов, 169 |
численные, 586 |
класса, сравнение с определением, 600–601 |
обработка исключений |
локальность, 190 |
bad_alloc, исключение нехватки памяти, 393 |
перегруженное |
обратная косая черта ( |
оператора, 131 |
как escape-символ, 280 |
функции, 429 |
как префикс escape-последовательности, 77 |
пространства имен, 407 |
обратные итераторы, 578 |
сопоставление объявлений в разных файлах, |
обход |
383 |
заполнение множества с помощью, 305 |
указателя на функцию, 366 |
использование с контейнерами multimap и |
включение спецификации исключений в, |
multiset, 309 |
548 |
множества, 306–7 |
функции, 322 |
невозможность обхода перечислений, 112 |
задание аргументов по умолчанию, 341 |
обход отображения, 303 |
как часть шаблона функции, 477 |
отображения текста на вектор позиций, 298– |
размещение в заголовочном файле, 385 |
301 |
функции-члена, перегруженное, 776–78 |