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

{

}

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

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

Класс

Шаблон

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

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

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

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

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


 

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

65352. МАРГІНАЛЬНА ПОВЕДІНКА ОСОБИ: ТЕОРЕТИКО-ПРАВОВИЙ АСПЕКТ 142 KB
  Проблема маргінальної поведінки особи та маргіналізації суспільства виступає постійним явищем існування людської історії а її гострота безпосередньо повязана з тими суспільними процесами які притаманні певній соціальній спільності...
65353. МІКРОКОМПОНЕНТНИЙ СКЛАД ПИТНИХ ПІДЗЕМНИХ ВОД ВОДОЗАБОРІВ МАЛИХ МІСТ ХАРКІВЩИНИ 1.21 MB
  Техногенне навантаження на навколишнє середовище в цілому та геологічне середовище, зокрема, відноситься до важливих екологічних проблем. Однією з таких актуальних проблем є вплив техногенного навантаження на геохімічний стан підземних вод...
65354. ОЗДОБЛЮВАЛЬН МОДИФІКОВАНІ БУДІВЕЛЬНІ РОЗЧИНИ НА ОСНОВІ БІЛОГО ПОРТЛАНДЦЕМЕНТУ 849 KB
  При використанні сучасних розчинів які мають досить значну номенклатуру за рахунок широкого впровадження технології сухих будівельних сумішей модифікованих СБСМ існує певне обмеження у застосуванні складів на основі білого портландцементу ПЦБ для оздоблення...
65355. АНАЛІЗ ТА МЕТОДИ УПРАВЛІННЯ РЕЖИМАМИ ЕЛЕКТРИЧНИХ СИСТЕМ З ГНУЧКИМИ ПЕРЕДАЧАМИ ЗМІННИМ СТРУМОМ 262.5 KB
  Сьогодні в світі електроенергетики спостерігаються протиріччя між ринковими економічними відносинами та надійністю режимів роботи електричних систем. Економічні перетворення, що відбуваються у вітчизняній електроенергетиці...
65356. ГІДРОІМПУЛЬСНИЙ ПРИВОД МЕМБРАННОГО НАСОСНОГО АГРЕГАТУ ДЛЯ ПЕРЕКАЧУВАННЯ ВИСОКОВ’ЯЗКИХ, АГРЕСИВНИХ ТА АБРАЗИВОВМІСНИХ СЕРЕДОВИЩ 235.5 KB
  Використання гідроімпульсних приводів для насосних агрегатів у вищезазначених галузях промисловості суттєво поліпшить вихідні параметри та характеристики вже морально застарілих та малоефективних приводів насосів а саме...
65357. Удосконалення методу оцінки характеристик вихідного сигналу ферозонда при контролі дефектів суцільності феромагнітних виробів 675.5 KB
  Також існує необхідність у методиці розрахунків вихідного сигналу ферозонда що вимірює поле дефекту йдеться про методику яка могла б урахувати не тільки параметри ферозонда але й вплив на функцію перетворення ферозонда...
65358. Програмно-педагогічне забезпечення міжпредметних зв’язків інформатики з математикою і фізикою у навчанні майбутніх інженерів 322.5 KB
  Сучасна комп’ютерна техніка розвивається стрімкими темпами, а також плідно взаємодіючи з фізикою, математикою, біологією та іншими науками. Створюються нові інформаційні технології, програмні засоби, що дозволяють моделювати різні явища.
65359. Моделі, методи та засоби обробки наборів зображень 1.55 MB
  Одним із об'єднувальних базисів для усіх цих задач є попередня обробка зображень наборів зображень та відеопослідовностей яка сьогодні ґрунтується на опрацюванні окремих зображень. Цим зумовлювався розвиток лише методів малої алґоритмічної складності які стосувались окремих зображень.
65360. Системи компенсації техногенних спотворень геомагнітного поля на робочих місцях оперативного персоналу електроенергетичних об’єктів 347.5 KB
  За відсутності спотворень геомагнітне поле ГМП є стаціонарним має високу однорідність і величину модуля вектора індукції в широтній зоні України близько 50 мкТл. Так в дні магнітних бур при яких індукція ГМП змінюється менш ніж на...