Параметризированный класс (шаблон класса) даёт обобщённое определение
семейства классов, использующее произвольные типы и константы.
Параметризированный класс определяет общий класс, который может быть
применён к изменяющимся типам данных; конкретный тип данных, над
которым выполняются операции, передаётся в качестве параметра.
Наиболее широкое применение шаблоны классов находят при создании
контейнерных классов – классы, в которых хранятся организованные данные.
Например, массивы, связанные списки, деревья и т.д. Определив в
параметризированном классе логику, он может быть применён к любому типу
данных.
Определение шаблона класса
Общая форма декларации шаблона класса:
template <список аргументов шаблона> class Имя класса
{
// Тело класса
};
За ключевым словом template следуют один или несколько аргументов,
заключённых в угловые скобки и отделяемых друг от друга запятыми. Каждый
аргумент является:
• Либо именем типа, за которым следует идентификатор.
• Либо ключевым словом class, за которым следует идентификатор,
обозначающий параметризированный тип.
Пример №1. Определение параметризованного класса Vector.
template class Vector
{
T m_t[n];
int m_size;
public:
Vector();
{
m_size=n;
}
T& operator [] (int Index)
{
assert(Index>=0 && Index < m_size);
return m_t[Index];
}
};
main()
{
Vector intVector; // массив целых чисел
Vector pointVector; // массив объектов класса
// Point.
return 0;
}
Задание №1
Определите, используя параметризованный класс «Vector»,
параметризованный класс «Очередь». Определите методы занесения данных в
очередь и извлечения данных. Проверьте класс для встроенного типа «char» и
класса «Point».
Задание №2
Разработайте параметризованный класс на основе класса «Vector» класс
«Matrix» (матрица) .
Задание №3
Разработайте параметризованный класс «Двунаправленный список».
Задание №4
Разработайте параметризованный класс «Разряженный массив».
Опубликовал Kest
February 24 2014 17:30:21 ·
0 Комментариев ·
3958 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.