ТОР 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';}//декларация шаблона класса //не метод класса
Не нашли, что искали? Воспользуйтесь поиском:
|