е шаблоны классов. Если вы соб

Автор admin Воскресенье, 17 мая 2009 11:32

е шаблоны классов. Если вы собираетесь использовать в качестве параметра шаблон, то компилятор должен знать, что это именно шаблон. Следующий пример демонстрирует применение шаблонов в качестве параметров шаблонов: //: C05:TempTemp.cpp // Шаблоны как параметры шаблонов #i nclude #i nclude using namespace std: tempiate class Array { // Простой, динамически расширяемый массив enum (INIT = 10}: T *data: size_t capacity: size_t count: public: ArrayO { count = 0: data = new T[capacity = INIT]; } -ArrayO { delete [] data: } void push_back(const T& t) { if(count == capacity) { // Увеличение базового массива size_t newCap = 2*capacity: T* newData = new T[newCap]; for (size_t i = 0; i < count; ++i) newData[i] = data[i]: delete data: data = newData: capacity = newCap; } data[count++] = t: } void pop_back() { if(count > 0) –count: } T* beginO { return data: } T* endO { return data + count: } }: tempiate class Seq> class Container { Seq seq: public: void append(const T& t) { seq.push_back(t): } • T* beginO { return seq.beginO; } T* endO { return seq.endO; }


Комментарии закрыты.