Д. Вандевурд, Н.М. Джосаттис - Шаблоны C++. Справочник разработчика (2003) (1160769), страница 94
Текст из файла (страница 94)
Альтернативный смысл — создание экземп- ляра (объекта) класса — в данной книге не ис- пользуется. См.!пмапсе (Экземпляр) Международная организация стандартизации (1п!еглабопа! Огйап!хабоп !ог 8!апбагб!ха!!оп). Рабочая группа 130 с именем %02 ! представля- ет собой движущую силу по стандартизации и развитию С++ Объект, который обеспечивает обход последова- тельности элементов. Зачастую эти элементы принадлежат коллекции.
См. Сайесйоп с(авз (Класс коллекции) Невстраиваемая функция или функция-член, гло- бальная переменная нли статические данные- член, включая сгенерированные из шаблонов В исходном языке программирования С выраже- ние называлось 1иа!ие, если оно могло находить- ся с левой стороны от оператора присвоения.
Напротив, выражения, которые могут распола- гаться только справа от оператора присвоения, называются и а1ие. Это определение в современ- ных С и С++ не вполне точное, и сейчас Ьа1ие означает выражение, предназначение которо- го †указыва объектпо имени или адресу Книги и %еЬ-узлы 527 МетЬег гетр!аге Шаблон члена Независимое имя О1Ж Отег!оаг( гезо1щюп Разрешение пере- грузки Регате(ег Параметр МетЬег с1аав гетр!аге МетЬег (опсг)оп гетр!аге Хопдерепдепг пате Шаблон класса- члена Шаблон функции- члена Правило одного определения означает выражение, предназначение которо- го — указывать объект по имени или адресу (посредством указателд, ссылки или массива), а не представлять собой вычисление.
Современные Ьа1ие ие обязаны быть модифицируемы (например, имя константного объекта представ- ляет собой неиодифицируеиое Ьа1ие). Все выра- жения, не являющиеся Ьа1ие, являются гва1ие. В частности, временные объекты, как создавае- мые явно (Т () ), так и получаемые в результате вызова функций, являются гга1ие. Конструкция, которая представляет семейспю чле- нов классов.
Это шаблон класса, обьявленный внутри другого класса или шаблона класса. Он об- ладает собственным множеством параметров шаб- лона (в отличие от члена класса шаблона класса) Конструкция, которая представляет семейство функций-членов. Она имщт собственное множеспю параметров шаблона (в отличие от функции-члена шаблона класса). Эта конструкция очень похожа на шаблон функции, но при подстановке всех ее пара- метров шаблонов в результате получается функция- член, а не обычная функжя. Шаблоны функций- членов не могут быль виртуальными Метдег с(гав гетре (Шаблон класса-члена) или МетЬег (и испол гетр(аге (Шаблон фующии- иена) Имя, которое не зависит от параметра шаблона. См. 1Зерелг(епг пате (Зависимое имл) и Ти о- р)шве 1оойир (Двухфазный поиск) Аббревиатура от опе-депп(г(оп ги(е (правило од- ного определения). Это правило накладывает оп- ределенные ограничения на определения, нахо- дящиеся в программе на С++.
См. раздел 7.4 и Приложение А, "Правило одного определения" Процесс, который выбирает, какая конкретно функция будет вызвана при наличии несколь- ких кандидатов (обычно имеющих одно и тоже имя) Заполнитель, вместо которого в некой точке бу- дет подставлено фактическое "значение" (аргумент). В случае параметров макросов и па- раметров шаблонов данная подстановка выпол- няется во время компиляции.
В случае парамет- ров вызова функции эта замена осуществляется в 528 Глоссарий Рагашеп(яеб с!азз Параметризован- ный класс Параметризован- ная функция Рагаше!Пгед !й побои Рмт!а! зрес!а11ха- боп Частичная спе- циализация РОО Обычные данные РО! Точка инстанци- рования Аббревиатура от ро!лг оу (лзгалг!аг)ол (точка ии- станцирования).
Р01 — зто место в исходном коде, в котором шаблон (нли член шаблона) мысленно развертывается путем подстановки аргументов шаблона вместо параметров шабло- на На практике такое развертывание не обязано выполняться в каждой точке инстанцирования. См. также Екр1!си (пзгалг(аиол с)!гесг! е (Директива явного инстанцирования) Класс или шаблон класса, члены которого опи- сывают настраиваемое поведение обобщенного компонента. Стратегии, как правило, передаются в качестве аргументов шаблонов. Например, шаблон сортировки может иметь стратегию упо- Ро!!су с!азз Класс стратегии процессе выполнения программы. В некоторых сообществах программистов параметр называ- ется формальным параметром, в то время как аргумент называется фактическим параметром.
См. также А гбитеш (Аргумент) Шаблон класса или класс, вложенный в шаблон класса. Оба оии называются параметризованными, поскольку не могут однозначно соответствовать некоторому единственному классу до тех пор, пока не будут определены аргументы шаблона Шаблон функции или функции-члена либо функ- ция-член в шаблоне класса. Все они называются параметризованными, поскольку не могут одно- значно соответствовать некоторой единственной функции (или функции-члену) до тех пор, пока не будут определены аргументы шаблона Конструкция, которая объявляет или дает альтерна- тивное определение для некоторых подстановок шаблона.
Исходный (обобщенный) шаблон называ- ется первичным шаблоном. Альтернативное опре- деление продолжает зависеть от параметров шаб- лона. В настоящее время зта конструкция применя- ется только для шаблонов классов. См. также Еяр!и!г зресю!йгиюл (Явная специализация) Аббревиатура от р!а!л ой! й~а (гуре) (обычный старый тип данных). Типы Р00 представляют собой типы, которые могут быть определены без использования возможностей С++ (таких, как виртуальные функции-члены, модификаторы доступа и т.п.). Например, обычная структура языка С является РО!) Книги и %еЬ-узлы 529 рядочения. Классы стратегий называют также шаблонами стратегий или просто стратегиями.
См. также Тга!гз гетр!агв (Шаблон свойств) Способность операции (идентифицируемой ее именем) быть примененной к обьектам различ- ных типов. В С++ традиционная объектно- ориентированная концепция полиморфизма (именуемая также полиморфизмам времени вы- полнения или динамическим полимарфизмом) достигается посредством виртуальных функций, переопределенных в производных классах.
Кро- ме того, шаблоны С++ обеспечивают так назы- ваемый статический пвлшиорфизм Исходный код в обработанном виде, быстро за- гружаемом компилятором. Исходный код пред- варительно скомпилированного заголовочного файла должен быть первой частью единицы трансляции (другими словами, он не может на- чинаться где-то в середине единицы трансляции). Зачастую предварительно скомпилированный заголовочный файл соответствует нескольким заголовочным файлам. Использование предвари- тельно скомпилированных заголовочных файлов может существенно сократить время, необходи- мое для построения больших приложений, раз- работанных на С++ Шаблон, не являющийся частичной специализацией Имя, содержащее квалификатор области видимости:: Полиморфизм Ро! ушогрЬ)зш Ргесошрйеб Ьеабег Предварительно скомпилирован- ный заголовочный файл Рг)лигу ьзшр!аге Первичный шаблон Яна1! Йеб паше Полное (квалифицированн- оее) имя Подсчет ссылок КеГегепсе соппбпй гча1ае Боогсе 61е гча1пе Исходный файл Зрес1а11хаг(оп Специализация Стратегия управления ресурсами, которая отсле- живает количество объектов, ссылающихся на некоторый ресурс.
Когда эта величина снижается до О, ресурс может быть освобожден См. 1ча1ие Неайегфе (Заголовочный файл) или 1)опСЯе (. С-файл) Результат подстановки вместо параметров шаб- лона фактических значений. Специализация мо- жет быть создана путем инстанцирования или явной специализации. Данный термин иногда ошибочно пугают с явной специализацией. См. также 1пзгапсе (Экземпляр) Глоссарий 530 Тешр!а!с-1б Идентификатор шаблона Тгайз гетр!а!е Шаблон свойств Тгапз1а!!оп опй Единица трансляции Тешр!а!е Шаблон Тешр1аге агрппеп! Аргумент шаблона Тешр!а!е агйпшепг Вывод аргумента бебпс!!оп шаблона Тешр!амрагапмюг Параметр шаблона Конструкция,которая представляетсемейство классов или функций.
Она определяет модель, по которой путем подстановки вместо параметров шаблона конкретных аргументов могут быть сге- нерироваиы действительные классы и функции. В этой книге данный термин не включает классы, функции и статические данные-члены, которые параметризованы постольку, поскольку являются членами шаблона класса. См. С!авл гетр!аге (Шаблон класса), Рагатегг(гег! с!авл (Параметризован-ный класс), Риис!!оп гетр!ше (Шаблон функции) и Рагатегг!гег! уипсг(оп (Параметризован-ная функция) тйначен не", подставляемое вместо параметра шаблона. Это значение обычно представляет со- бой тип, хотя корректными аргументами могут быть также некоторые константные значения и шаблоны См.
Рег!исг(оп (Определение) Комбинация имени шаблона, за которым следу- ют его аргументы в угловых скобках (например, все:: 11вс<з.пс>) Обобщенный заполнитель в шаблоне. Наиболее общий вид параметров шаблонов — параметры типа, которые представляют различные типы. Параметры, не являющиеся типами, представ- ляют собой константные значения некоторого типа, а шаблонные параметры шаблонов явля- ются шаблонами классов Шаблон, члены которого описывают характери- стики (свойства) аргументов шаблона.