Шаблон класса 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
- 3343 reads