Объектно-ориентированное программирование на C++


Наследование в шаблонах классов


И, наконец, последнее. Шаблоны классов, как и классы, поддерживают механизм наследования. Все основные идеи наследования при этом остаются неизменными, что позволяет построить иерархическую структуру шаблонов, аналогичную иерархии классов.

Рассмотрим совершенно тривиальный пример, на котором продемонстрируем, каким образом можно создать шаблон класса, производный из нашего шаблона класса Pair. Пусть это будет класс Trio, в котором к паре элементов a и b из Pair, добавим еще один c.

template <class T&gt

class Trio: public Pair <T&gt

{

 T c;

 public:

 Trio (T t1, T t2, T t3);

 ...

};

template <class T&gt

Trio<T&gt::Trio (T t1, T t2, T t3): Pair <T&gt (t1, t2), c(t3)

// Заметьте, что вызов родительского конструктора

// также сопровождается передачей типа Т в качестве параметра.

{}

[назад] [оглавление] [вперед]



Содержание раздела