4971

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

Контрольная

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

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

Русский

2012-11-30

43.86 KB

14 чел.

Шаблон

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

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

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

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

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

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

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

Для описания шаблонного класса используется ключевое слово 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()

{

}

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

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

Класс

Шаблон

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

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

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

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

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


 

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

59214. Команда присвоєння. Кодоплівка. Проміжні величини 34.5 KB
  Для того щоб запамятати або змінити значення величини в алгоритмічній мові є спеціальна команда команда присвоєння яка записується в такому вигляді: зміна: = вираз або кодоплівка імя змінної: = вираз...
59215. Перевірка і редагування тестів-описів 43 KB
  Мета: Вчити перевіряти творчі роботи, редагуючи тексти і виправляти помилки. Розвивати мислення, мовлення та уміння самостійно здійснювати контроль за виконанням творчих робіт. Виховувати шанобливе ставлення до мови.
59216. Множення двоцифрового числа на одноцифрове 26 KB
  Розвивати мислення і память виховувати охайність працелюбність. Розвязуємо задачі. Розвязування прикладів коментовано множення числа на суму ІІІ. Розвязування задач.
59217. Додавання двоцифрових чисел без переходу через десяток. Приклади виду 34 + 52 68.5 KB
  Вчити застосувати здобуті знання під час обчислення виразів розвязанні різних завдань. Розвивати увагу спостережливість. 24 73 = 20 4 70 3 Як зручно обчислити суму 2 Пояснити розвязання прикладу 34 52.
59218. Текст-опис за картиною. Сценарій проведення уроку 28.5 KB
  Передати функції контролю за написанням твору групам Розвивати спостережливість, зв’язне мовлення, уміння чітко висловлювати свої думки. Виховувати шанобливе ставлення до слова і любов до природи.
59219. Текст-опис за картиною В. Д. Поленова: Ставок, що заріс 32 KB
  Мета. Вчити змальовувати пейзажі за картиною та колективно складеним планом. Розвивати мову і спостережливість, збагачувати словниковий запас, розвивати уміння висловлювати свої думки та почуття.
59220. Письмове ділення багатоцифрового числа на одноцифрове у випадку, коли в частці дістають нулі 27.5 KB
  Мета: Ознайомити учнів з випадком ділення, коли в середині або в кінці частки з’являються нулі. Продовжити роботу з формування в учнів уміння виконувати письмове ділення на одноцифрове число. Розвивати логіку мислення. Виховувати працелюбність.
59221. Тестирование аппаратно-программных средств ЭВМ 584.52 KB
  Цель работы – с помощью программного средства диагностики ЭВМ определить основные характеристики аппаратных и программных средств ЭВМ, выполнить анализ производительности ЭВМ.
59222. Г.Ібсен Ляльковий дім – соціально-психологічна драма. Показ шляху становлення особистості Нори 31.5 KB
  Мета уроку: розкрити суть соціально-психологічної драми Ляльковий дім зясувати основні проблеми особливості композиції драми дослідити як у пєсі розглядається проблема становлення особистості Нори і формувати вміння та навики аналізу драматичного твору з опорою на текст.