Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Шаблоны (параметризация) классов




Шаблоны обеспечивают параметризированые типы данных. Это ещё один вид полиморфизма – полиморфизм параметризованных типов данных. Задаётся схема функции или класса. Когда задаётся значения параметров, то определяется действительно конкретная функция определённого типа или класс.

(Параметризованные функции – просмотреть самостоятельно, но в экзамен они не входят)

 

Шаблон указывается так:

template<class_Type> {декларация класса|реализация класса}

class_Type – это список пар, разделённых запятыми. Декларация класса и реализация класса выглядят точно так, как это делается для обычных классов, - первое слово class или typename (в более поздних версиях компилятора), а второе пользовательское имя, позволяющее ссылаться к типу или к объекту данных, далее все как обычно.

 

Пример

 

 

template < class Type> class Stack

{

private:

enum {MAX = 10};

Type items[MAX];

int top;

public:

Stack();

bool isempty();

...

bool push(const Type& item);

bool pop(Type &item);

};

 

template < class Type>

Stack<Type>::Stack()

{top = 0;}

 

template < class Type>

bool Stack<Type>::isempty()

{ return top ==0;}

 

template < class Type>

bool Stack<Type>::push(const Type& item)

{

if (top<MAX)

{

items[top++] = item;

return true;

}

else return false;

}

 

template < class T> void simple(T t){cout<<t<<'\n';}//декларация шаблона класса

//не метод класса

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных