A class template is not a class. It describes a class with one or more unbound formal parameters. The parameters of the template must be bound to actual values to create a bound form that is a class.
The template, therefore, specifies a family of classes, each class specified by binding the parameters to actual values. Typically the parameters represent attribute types. The parameters can also represent integers, other types, or operations.
A template cannot be used directly in an ordinary relationship such as a generalization or association. The template's parameters must be bound to actual values for the template to participate; such a template is considered a bound element (see Bound elements). A template can be a subclass of an ordinary class. All classes formed by binding it (bound elements) are subclasses of the superclass.
Notation
Parameters for the class template are entered in the Formal Parameters box of the class’s definition.