4971

Шаблон и шаблонный класс

Контрольная

Информатика, кибернетика и программирование

Шаблон При решении практических задач возникает необходимость создания семейства классов для формирования для описания похожих объектов. Формирование семейства классов целесообразно при описании структур данных, например, массивов указателей, списко...

Русский

2012-11-30

43.86 KB

15 чел.

Шаблон

При решении практических задач возникает необходимость создания семейства классов для формирования для описания похожих объектов.

Формирование семейства классов целесообразно при описании структур данных, например, массивов указателей, списков, деревьев и т.д.

Для формирования семейств классов используются шаблонные классы.

Шаблонный класс (шаблон) – это параметризированный класс. В качестве параметров параметризированного класса указываются типы данных и константы.

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

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

Описание шаблонного класса

Для описания шаблонного класса используется ключевое слово template.

Формат описания шаблонного класса следующий

template <class T, int N>

class Massiv

{

Massive();

~Massive();

};

Т является обозначением передаваемого в шаблон класса (типа данных). Служебное слово класс является признаком того, передаваемый в класс параметр- тип данных.

Обозначение конкретного типа данных слева от передаваемого параметра означает, что данных параметр является константой.

Например, шаблонный класс Massiv предназначен для организации классов массивов из элементов данных типа Т с количеством элементов N.

Для организации класса массивов, состоящих из фиксированного количества элементов конкретного типа целесообразно использовать операцию typedef.

Например, для описания класса массива целых чисел из 20 элементов следует использовать команду

typedef Massive<int,20> MassiveInt20;

Далее можно определять конкретный массив

MassiveInt20 M1;

Возможен вариант определения массива непосредственно на основе шаблона

Massive<int,20> M2;

Полное определение функций шаблона должно выглядеть следующим образом

template <class T, int N>

Massive<T,N>::Massive()

{

}

Определение шаблона и описание функций должны находиться в одном файле.

Сравнительный анализ класса и шаблона

Класс

Шаблон

Служит для описания однородных объектов

Служит для описания семейства классов

Описывается в виде двух файлов

Описывается в виде одного файла

Далее приведен пример класса список


 

А также другие работы, которые могут Вас заинтересовать

16870. Как бы Вы ответили 95 KB
  Как бы Вы ответили Далеко не будучи слепой верой Христианство можно логически защищать. Кен Хэм Кажется что всё в нашей ежедневной жизни имеет своё начало. Законы науки показывают что даже некоторые вещи которые выглядят неизменными и одинаковыми каждый день
16871. Дизайн человеческого глаза 271 KB
  PAGE 1 Дизайн человеческого глаза Др. Курт Декерт Человек обладает одной из наиболее изумительных зрительных систем. Основные свойства человеческого глаза включают: безупречно скорректированный оптический дизайн точная геометрия материалов контрол...
16872. Молекулярные механизмы: экспериментальная поддержка вывода о Разумном Замысле 158 KB
  Молекулярные механизмы: экспериментальная поддержка вывода о Разумном Замысле Др. Майкл Бихи Для Дарвина клетка и каждая микробиологическая функция были непостижимым черным ящиком. Теперь когда мы можем изучить этот ящик можем ли мы применить теорию Дарвина к нем...
16873. Мутации и новые гены. Можно ли утверждать, что они служат материалом макроэволюции 224.62 KB
  Мутации и новые гены. Можно ли утверждать что они служат материалом макроэволюции Алекс Лунный 1. Макроэволюция основное положение эволюционной теории Понятие макроэволюция является одним из краеугольных камней эволюционной теории основы которой в обязательн...
16874. Дарвинизм как догма 126.18 KB
  Дарвинизм как догма The Morley Institute Inc. June 1998преподаватель биохимии в университете Лихай научный сотрудник Института Дискавери Discovery Institute.Залы академии наук расположены довольно далеко от ковбойских салунов но и у профессоров временами пальцы неудержимо тян...
16875. Научные факты которые опровергают теорию эволюции Перемалыватель Эволюции от Evolution Facts, Inc 1.02 MB
  Научные факты которые опровергают теорию эволюции Перемалыватель Эволюции от Evolution Facts Inc Введение. Ученые говорят об эволюции Ведущие ученые могут коечто сказать Вам об эволюции. Такие утверждения никогда не будут найдены в популярных журналах рядом с вели
16876. Проблема возраста Земли 76 KB
  Проблема возраста Земли Данный краткий специальный обзор составлен канд. геол.минер. наук Л.В.Витте по материалам II Российской конференции по изотопной геохронологии 2527 ноября 2003г. Материалы конференции опубликованы в сборнике Изотопная геохронология в решении про
16877. Очерк естествознания 1.28 MB
  Сергей Вертьянов Очерк естествознания Очерк Сергея Вертьянова долгожданное и очень серьезное согласование новейших достижений науки с православной точкой зрения. Он замечателен тем что написан с большой тщательностью и выверен на самом высоком научном уровне. Ав
16878. Размышления физика о тайне творения вселенной 63.5 KB
  PAGE 2 О.В.Петренко Содержание: 1. Вступление. 2. Чудесное рождение вселеннной и ее удивительная природа. 3. Совершенство конструкции человеческого организма. 4. Вероятность случайного появления человека. 5. Свидетельства фундаментальной науки. 6....