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

{

}

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

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

Класс

Шаблон

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

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

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

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

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


 

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

64479. ВИКОРИСТАННЯ ІМУНОСТИМУЛЮЮЧИХ ПРЕПАРАТІВ ДЛЯ ПІДВИЩЕННЯ ПРИРОДНОЇ РЕЗИСТЕНТНОСТІ ТА ПРОФІЛАКТИКИ СТРЕСІВ У ПОРОСЯТ 281 KB
  Для поліпшення стану природної резистентності організму поросят-сисунів можна використовувати різні препарати у тому числі і виготовлені із природної сировини зокрема з тимусу...
64480. КОНСТРУКТИВНО-ТЕХНОЛОГІЧНИЙ МЕТОД ПІДВИЩЕННЯ ВТОМНОЇ ДОВГОВІЧНОСТІ РОЗНІМНИХ БОЛТОВИХ З’ЄДНАНЬ ЕЛЕМЕНТІВ ПЛАНЕРА ЛІТАКА 5.5 MB
  Їх довговічність має бути не меншою за довговічність нерознімних поздовжніх болтових зєднань силових елементів планера виконаних з осьовим і радіальним натягом.
64481. ГЕНЕРАЦІЯ СИГНАЛІВ ЕЛЕКТРОРУШІЙНОЇ СИЛИ В СПЛАВАХ З ВИБУХОВОЮ КІНЕТИКОЮ МАРТЕНСИТНОГО ПЕРЕТВОРЕННЯ 1.84 MB
  До таких нетрадиційних проявів слід віднести звукову емісію та генерацію електричних сигналів. Появу електричних сигналів при протіканні прямого МП зареєстрували у різних сплавах...
64482. Особливості правового регулювання трудової діяльності депутатів Верховної Ради України як суб’єктів трудового права 162.5 KB
  За цей період відбулися значні зміни в економічному, політичному й громадському житті країни, що, у свою чергу, зумовило зміни в урегулюванні діяльності народних депутатів.
64484. СТРУМИННА ТЕХНІКА В ОПАЛЮВАЛЬНО – ВЕНТИЛЯЦІЙНИХ СИСТЕМАХ 369.5 KB
  Подальший науковотехнічний прогрес який спрямований на вирішення найважливіших проблем що поставлені перед промисловістю України в першу чергу паливних енергетичних екологічних галузях є неможливим без підвищення ефективності опалювальновентиляційних систем ОВС.
64485. АУДИТОРСЬКІ ПОСЛУГИ В СИСТЕМІ ЕКОНОМІКО-ПРАВОВОГО ЗАБЕЗПЕЧЕННЯ ГОСПОДАРСЬКОЇ ДІЯЛЬНОСТІ 313.5 KB
  Економіко-політичні зміни трансформація законодавчої бази розширення зовнішньоекономічної діяльності викликають стрімкий розвиток ринку аудиторських послуг в Україні.
64486. Поліпшення енергетичних показників і паливної економічності бензинового двигуна в режимах повних навантажень 2.1 MB
  Актуальність теми полягає у тому що теоретичними та експериментальними дослідженнями показано як добавкою закису азоту до повітряного заряду можна одночасно покращити енергетичні показники і паливну економічність та створити сприятливі умови для роботи каталітичних нейтралізаторів.
64487. ЛЮБОМИР ВИНАР ЯК ДОСЛІДНИК УКРАЇНСЬКОЇ ІСТОРІЇ ТА ІСТОРІОГРАФІЇ 179.5 KB
  Винара що зумовлює актуальність даної теми адже науковий доробок вченого є важливим надбанням української історичної думки. Винара в дослідження проблем історії України та української історіографії.