Объектно-ориентированное программирование: учебное пособие / В. Н. Казагачев.

включает шаблоны параметров - особо friend только для того класса, экземпляр которого создается, template <class Т> class matrix { friend void foobarQ; // универсальная friend vect <T> product(vect <T> v); // создается экземпляр }; Статические члены Статические члены не универсальны, а специфичны для каждой реализации. template <class Т> class foo { public: static int count; }; template <class T> int foo::count=0; foo <int> a; foo <double> b; Определены статические переменные foo<int>::count и foo<double>::cout. Аргументы шаблона класса Как классы, так и функции могут иметь несколько аргументов шаблона класса. Напишем функцию, которая преобразуег значение одного типа к другому типу, при условии, что первый тип, по крайней мере, такой же длины как и второй, template <class Tl,class T2 > boolean coerce(Tl& x, T2 y) { if(sizeof(x) >= sizeof(y)) x=(Tl)y; else false; return true; } Наследование Параметризованные типы могут повторно использоваться, благодаря наследованию. Это сравнимо с использованием

RkJQdWJsaXNoZXIy MTExODQxMg==