Язык программирования C++

         

и как неконстантный. Если операция


Обратите внимание, что операция [] определена в двух вариантах – как константный метод и как неконстантный. Если операция [] используется справа от операции присваивания (в первых двух присваиваниях), то используется ее константный вариант, если слева (в последнем присваивании) – неконстантный. Использование операции индексирования [] слева от операции присваивания означает, что значение объекта изменяется, соответственно, нужна неконстантная операция.

Параметр шаблона   vector – любой тип, у которого определены операция присваивания и стандартный конструктор. (Стандартный конструктор необходим при операции new для массива.)

Так же, как и с функциями-шаблонами, при задании первого объекта типа vector<int> автоматически происходит генерация конкретного класса из шаблона. Если далее в программе будет использоваться вектор вещественных чисел или строк, значит, будут сгенерированы конкретные классы и для них. Генерация конкретного класса означает, что генерируются все его методы, соответственно, размер исходного кода растет. Поэтому из небольшого шаблона может получиться большая программа. Ниже мы рассмотрим одну возможность сокращения размера программы, использующей почти однотипные шаблоны.

Сгенерировать конкретный класс из шаблона можно явно, записав:

template vector<int>;

Этот оператор не создаст никаких объектов типа vector<int>, но, тем не менее, вызовет генерацию класса со всеми его методами.


Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий