Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Return 0;. Обратите внимание на использование шаблонного класса point главной функцией main():



}

Обратите внимание на использование шаблонного класса point главной функцией main():

в строках 1 и 2 шаблон инстанцируется в конкретный класс point с подстановкой вместо Т типа double, в строке 3 — в класс point с подстановкой типа int, в строке 4 — с подстановкой типа short.

Заметим, что наиболее широкое применение шаблоны классов нашли при создании контейнерных классов стандартной библиотеки шаблонов (STL), которые предназначены для работы с такими стандартными структурами, как вектор, список, очередь, множество и т. д. (Еще раз: контейнеры — это объекты, предназначенные для хранения других объектов).

Еще один пример.

// шаблон векторов

template<class T> // Т – параметр шаблона

class Vector // Vector - имя семейства классов

{T* data; // данные класса

int size; // размер пространства

public:

Vector(int); // конструктор

~Vector () { delete [ ]data; } // деструктор

// перегрузка операции “ [ ]”

T& operator [ ] (int i) { return data[i];}

friend ostream & operator << (ostream&, Vector <T>);

};

template<class T> // внешнее определение конструктора шаблона

Vector <T>:: Vector(int n)

{data = new T[n];

size =n;}

// определение перегрузки операции <<

ostream & operator << (ostream& out, Vector <T> X)

{ out<<endl;

for(int i=0;i<X.size; i++)

out<<X[i]<<" "; return out;}

Теперь можно объявлять объекты конкретных классов, порожденных из шаблона





Дата публикования: 2014-11-28; Прочитано: 164 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...