Информатика и технология программирования


Шаблоны - часть 3


Кроме того, шаблон может использоваться для размещения не только указателей на параметризованные объекты, но и самих объектов. В качестве примера рассмотрим шаблон для построения циклической очереди ограниченного размера для параметризованных объектов:


//------------------------------------------------------bk73-13.cpp


//-------Шаблон с параметром-константой


template &#60class T,int size&#62 class FIFO
{
int fst,lst; // Индексы начала и конца очереди


T queue[size]; // Массив объектов класса "T" размерности "size"


public:
T from(); // Функции включения-исключения


void into(T); //


FIFO(); // Конструктор


};


template &#60class T,int size&#62 FIFO&#60T,size&#62::FIFO()
{ fst = lst = 0; }


template &#60class T,int size&#62 T FIFO&#60T,size&#62::from()
{
T work;
if (fst !=lst)
{
work = queue[lst++];
lst = lst % size;
}
return(work);
}


template &#60class T,int size&#62 void FIFO&#60T,size&#62::into(T obj)
{
queue[fst++] = obj;
fst = fst % size;
}

Пример определения объектов шаблонного класса:


struct x {};
FIFO&#60double,100&#62 a;
FIFO&#60int,20&#62 b;
FIFO&#60x,50&#62 c;




Начало  Назад  Вперед



Книжный магазин