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()

{

}

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

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

Класс

Шаблон

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

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

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

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

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


 

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

5545. Журналістика Великобританії 121 KB
  Журналістика Великобританії Журналістика Великобританії XVІІІ століття Британська преса ХІХ століття Англійська журналістика ХХ століття Радіо- і телевізійне мовлення в Англії Розвиток цифрового телебачення Великобританії...
5546. Семантическая структура слова 42 KB
  Семантическая структура слова Словесный знак может иметь одно значение, он также может обладать рядом значений. Однозначность многозначность является одним из важнейших противопоставлений, лежащих в основе лексико-семантической системы. Однозначные ...
5547. Социальное партнерство в сфере труда. Коллективные договоры и соглашения 41.85 KB
  Социальное партнерство в сфере труда. Коллективные договоры и соглашения. План занятия: 1. Социальное партнерство: понятие, стороны, система и формы. 2. Принципы социального партнерства, их характеристика. 3. Представители работников и работодателя ...
5548. Экономический контроль и аудит в системе управления компанией 41.81 KB
  Контроль и аудит 1. Экономический контроль и его место в системе управления компанией 2. Особенности системы внутреннего контроля 3. Цели контроля и их взаимосвязь с общими целями аудиторской проверки. Оценка системы внутреннего контроля 1. Экономич...
5549. Туберкулёз кожи. Вирусные и инфекционные поражения кожи слизистых оболочек 116.5 KB
  Туберкулёз кожи. Вирусные и инфекционные поражения кожи слизистых оболочек Определение Этиология Классификация по клиническим формам и клиническим разновидностям Тактика среднего медицинского работника при данных заболеваниях...
5550. Вирусные гепатиты. Холера. Полиомиелит 118.5 KB
  Вирусные гепатиты. Холера. Полиомиелит Раздел Вирусные гепатиты Вирусные гепатиты — группа острых инфекционных заболеваний человека, которые имеют клинически сходные проявления, полиэтиологичны, но различны по эпидемиологическим характеристи...
5551. От неоплатонизма к средневековой философии 92.5 KB
  От неоплатонизма к средневековой философии Вопрос 1 Неоплатонизм и античная наука. Стремиться не только быть вне греха, но быть Богом (Плотин). Философы о Плотине и его учитель. Последний этап развития античной философии – неоплатонизм. Главный...
5552. Характеристика этапов моделирования Поставка и формализации задачи 122 KB
  Значение и содержание этапа Постановки задачи Постановка задачи является первым этапом моделирования. Решающее значение этого этапа для успеха исследования отмечается во всех работах, посвященных методологии моделирования. Сформулировать задачу...
5553. Опека и попечительство в гражданском праве 150.5 KB
  Введение Во всяком обществе могут оказаться лица, имеющие права (правоспособные), но не обладающие достаточной степенью разумения и зрелостью воли для самостоятельного управления своими делами (недееспособные). Таковы - несовершеннолетние и без...