Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к информатике.doc
Скачиваний:
9
Добавлен:
26.09.2019
Размер:
356.86 Кб
Скачать
  1. Шаблоны классов. Шаблоны классов

В классе, реализующем связный список целых чисел, алгоритмы добавления нового элемента списка, поиска нужного элемента не зависят от того, что элементы списка — целые числа. Те же алгоритмы применялись бы и для списка символов, строк, дат, классов игроков, и так далее.

template< class T >

class List

{

/* ... */

public:

void Add( const T& Element );

bool Find( const T& Element );

/* ... */

};

Использование шаблонов

Для использования шаблона класса, необходимо указать его параметры:

List<int> li;

List<string> ls;

li.Add( 17 );

ls.Add( "Hello!" );

  1. Шаблоны функций.

Шаблоны C++

[править]

Материал из Википедии — свободной энциклопедии

У этого термина существуют и другие значения, см. Шаблон.

Шабло́ны (англ. template) — средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).

В C++ возможно создание шаблонов функций и классов.

Шаблоны позволяют создавать параметризованные классы и функции. Параметром может быть любой тип или значение одного из допустимых типов (целое число, enum, указатель на любой объект с глобально доступным именем). Например, нам нужен какой-то класс:

class SomeClass{

int SomeValue;

int SomeArray[20];

...

}

Для одной конкретной цели мы можем использовать этот класс. Но, вдруг, цель немного изменилась, и нужен еще один класс. Теперь нужно 30 элементов массива SomeArray и вещественный тип SomeValue и элементов SomeArray. Тогда мы можем абстрагироваться от конкретных типов и использовать шаблоны с параметрами. Синтаксис: в начале перед объявлением класса напишем слово templateи укажем параметры в угловых скобках. В нашем примере:

template < int ArrayLength, typename SomeValueType > class SomeClass{

SomeValueType SomeValue;

SomeValueType SomeArray[ ArrayLength ];

...

}

Тогда для первой модели пишем:

SomeClass < 20, int > SomeVariable;

для второй:

SomeClass < 30, double > SomeVariable2;

Хотя шаблоны предоставляют краткую форму записи участка кода, на самом деле их использование не сокращает исполнимый код, так как для каждого набора параметров компилятор создаёт отдельный экземпляр функции или класса.

  1. Понятие потока в языке C++. Стандартные потоки.

Поток (srteam) – абстрактный канал связи, создаваемый в программе для обмена данными.

В зависимости от реализуемого направления передачи данных потоки делят на три группы:

· входные, из которых читается информация;

· выходные, в которые вводятся данные;

· двунаправленные, допускающие как чтение, так и запись.

Потоки, связанные с консольным вводом/выводом (клавиатура/экран), называются

стандартными. Стандартному потоку ввода соответствует класс 1 stream,

стандартному потоку вывода ~ класс ostream. Оба класса являются производными

от класса 1os. Следующим в piepapxnn является класс 1 ostream, наследующий

классы 1 stream и ostream и обеспечивающий общие средства потокового

ввода/вывода.