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

{

}

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

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

Класс

Шаблон

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

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

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

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

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


 

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

19786. Компоненти керування – Button, RadioButtonGroup, CheckBox, etc 28 KB
  Компоненти керування Button RadioButton/Group CheckBox. Компоненти керування стандартні для Windows інтерфейсні елементи такі як головне і спливаюче меню кнопка однорядковий і багаторядковий редактори перемикачі мітки списки і деякі інші компоненти що застосовуються найчасті
19787. Компоненти списків ListBox, ComboBox 22 KB
  Компоненти списків ListBox ComboBox. Компоненти керування стандартні для Windows інтерфейсні елементи такі як головне і спливаюче меню кнопка однорядковий і багаторядковий редактори перемикачі мітки списки і деякі інші компоненти що застосовуються найчастіше. Компонент...
19788. Робота з текстом. Клас TStrings 16.16 KB
  При роботі з інформацією текстом потрібно виконувати її відображення введення і редагування. Підкреслимо що ми розглядаємо поняття текстав широкому сенсі припускаючи що до складу тексту можуть входити літери іціфри. При роботі з текстовими даними вони можуть об'єдну
19789. Розподіл оперативної пам’яті. Вказівники види, об’явлення, операції 34.5 KB
  4.Розподіл оперативної памяті. Вказівники: види обявлення операції. Вказівником називається змінна яка містить в собі певниу адресу мається на увазі адресу в оперативній пам'яті. Як правило вказівники містять адресу деякої іншої змінної або виділеної д
19790. Створення меню. Компоненти MainMenu та PopupMenu 28 KB
  1.Створення меню. Компоненти MainMenu та PopupMenu. MainMenu невізуальний на відміну від візуальних компонентів TEdit і TLabel в точності відповідних своєму зовнішньому вигляду в працюючій програмі. Це означає що хоча його видно на формі як невеликий квадрат у вікні створеної програми ...
19792. Текстові компоненти Label, Edit, Memo 26.5 KB
  Текстові компоненти Label Edit Memo Компоненти керування стандартні для Windows інтерфейсні елементи такі як головне і спливаюче меню кнопка однорядковий і багаторядковий редактори перемикачі мітки списки і деякі інші компоненти що застосовуються найчастіше. Компонен
19793. Файловий ввід/вивід. Поняття потока. Класс TFileStream 27 KB
  Файловий ввід/вивід. Поняття потока. Класс TFileStream. Файловий вводвивод реалізується по поточним стандартам.Наприклад Мова Сі абстрагує всі файлові операції перетворюючи їх на операції з потоками байтів які можуть бути як потоками введення так і потоками виведе
19794. Требования, предъявляемые к современным вычислительным сетям 17.73 KB
  Требования предъявляемые к современным вычислительным сетям Главным требование обеспечение пользователям потенциальной возможности доступа к разделяемым ресурсам всех компьютеров объединенных в сеть. Все остальные требования производительность надежность сов