Шаблон класса C++
Primary tabs
Шаблон - это предписание для создания класса, в котором один или несколько типов либо значений параметризованы.
Да - вообще полезно прочитать вступление здесь.
То есть шаблон позволяет нам задать описание класса, использующего тип данных, который можно определить "на ходу" 0при создании класса, а не заранее - как при обычном его описании.
Пример:
template < class Type > class Queue { public: Queue(); ~Queue(); Type& remove(); void add( const Type & ); bool is_empty(); bool is_full(); private: // ... };
У шаблона класса может быть несколько параметров-типов:
template < class T1, class T2, class T3 > class Container;
Однако ключевое слово class или typename должно предшествовать каждому. Следующее объявление ошибочно:
// ошибка: должно быть < typename T, class U > или // < typename T, typename U > template < typename T, U > class collection;
а также ещё одна полезная цитата отсюда:
Также typename можно использовать вместо class при описании шаблона. То есть вместо template можно написать template, разницы никакой нет. Но исторически так сложилось, что class употребляется чаще.
- Log in to post comments
- 2805 reads