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

{

}

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

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

Класс

Шаблон

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

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

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

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

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


 

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

81965. ПРЕС-КОНФЕРЕНЦІЯ «ВОДА – НАЙВАЖЛИВІШИЙ МІНЕРАЛ» 1.29 MB
  Мета: Розширити і збагатити знання учнів про воду, дати уявлення про значення води на планеті Земля, закріпити знання про властивості води та її народногосподарське призначення, в тому числі в рідному краї. Виховувати в учнів бережне ставлення до води та бажання зберегти запаси прісної води чистими для себе і майбутніх поколінь.
81966. Вода. Кругообіг води 248 KB
  Мета: На основі вивченого матеріалу систематизувати знання учнів про властивості води, стани води, кругообіг води, значення води в природі і для людей; формувати вміння застосовувати засвоєні знання. Розвивати вміння аналізувати природні явища, робити висновки.
81967. Земля – голуба планета. Водойми України 59.5 KB
  Повторити і розширити поняття про водойми України їх різноманітність джерело річка її будова складові частини; озеро болото море значення та охорону; продовжувати формувати вміння учнів працювати з фізичною картою зошитом підручником; розвивати уміння логічно мислити працювати у групі...
81968. Практичне заняття «Вогонь – друг, вогонь – ворог» 69 KB
  Мета: продовжити формувати уявлення про причини виникнення пожежі в побуті та її наслідки; вчити учнів правильно діяти у випадку виникнен ня пожежі в сусідів чи на інших об’єктах; розвивати навички самозахисту; виховувати розсудливість, почуття відповідальності за свої вчинки.
81969. Хай вічно горить вогонь пам’яті 42.5 KB
  Яка б річниця визволення нашої країни від німецько-фашистських загарбників не наступала, думка про те, що настала тиша, прийшов довгожданий, вистражданий, оплачений дорогою ціною мир, бентежить душу. Зараз ми послухаємо у грамзаписі спогади учасників боїв.
81970. Вогонь — друг, вогонь — ворог (Сценарій виступу) 35.5 KB
  Через необережне поводження з вогнем щорік гинуло все більше і більше людей. Вогонь — ворог! Він залишив свої криваві сліди в історії всіх епох і народів. Тисячі міст і сіл зникли в полум’ї вогню. Безцінні твори попередніх поколінь перетворились на порох. Вогонь згубив мільйони людей.
81971. УРОК ВНЕКЛАССНОГО ЧТЕНИЯ. ИГРА «ЧТО? ГДЕ? КОГДА?» 48.5 KB
  Цели урока: проверить знания учеников, развивать логическое мышление, привлечь интерес к интеллектуальным играм, воспитывать познавательный интерес, стремление к победе. Оборудование урока: вращающийся волчек со стрелкой, круг с цифрами, десять конвертов с вопросами...
81972. Захворювання статевих органів. Венеричні хвороби. СНІД 157 KB
  Зустрічаючись люди зазвичай говорят це гарне добре слово бажаючи один одному здоровя. А що таке здоровя За визначенням Всесвітньої організації охорони здоровя це не тільки відсутність хвороб але й стан повного фізичного душевного й соціального благополуччя.
81973. Доброта та жорстокість 44.5 KB
  Мета: ознайомити дітей з поняттям «доброта», «жорстокість». Розвивати вміння творити добро, усувати прояви жорстокості в своїй поведінці. Виховувати чуйне ставлення до людей і всього навколишнього світу.