и установлены значения элементов этих массивов, то вызов функции sort ( aint, 10 ); обеспечит вызов sort для упорядочения массива целых, а вызов функции sort ( afl , 20 ) обеспечит вызов sort для упорядочения массива с элементами типа double. Шаблоны классов По аналогии с параметризованной функцией можно построить параметризованное описание класса, позволяющее создавать экземпляры классов для конкретных значений параметров. Параметризованный класс описывается следующим образом: template <class Т > class описание класса Как и для функций, в описателе template может быть задано несколько параметров. В самом описание класса имена параметров используются как имена типов данных, типов параметров функций и типов значений, возвращаемых функциями. Пример. Приведем описание класса stack, предназначенного для построения стеков фиксированного максимального размера с элементами произволного типа, enum BOOLEAN ( FALSE, TRUE ); template <class Type > class stack { private: enum ( EMPTY = -1 ); Type* s; /* Указатель на массив стека */ int maxlen; /* Максимальная длина стека */ int top; /* Индекс элемента в вершине стека */ public: stack ( ) : max len ( 100 ) /* конструктор без параметров */ { s = new Туре [100 ]; top = EMPTY; } stack ( int size ) : max_len( size ) /* Второй конструктор */ { s = new Type [ size ]; top = EMPTY; }
RkJQdWJsaXNoZXIy MTExODQxMg==