The relationship between a class template and an individual class is like the relationship between a class and an individual object. An individual class defines how a group of objects can be constructed, while a class template defines how a group of classes can be generated.
Note the distinction between the terms class template and template class:
| Class template | a template used to generate template classes. A class template can be only a declaration, or it can be a definition of th e class. |
| Template class | an instance of a class template. |
template <class L,class T> class key;
This reserves the name as a class template name. All template declarations for a class template must have the same types and number of template arguments. Only one template declaration containing the class definition is allowed. You can instantiate the class template by declaring a template class. If the definitions of the member functions of the template class are not inlined, then you have to define them. When you instantiate a template class, its argument list must match the argument list in the class template declaration.
Note: When you have nested template argument lists, you
must have a separating space between the > at the end of the
inner list and the one at the end of the outer list. Otherwise,
there is an ambiguity between the output operator >> and
two template list delimiters >.
template <class L,class T> class key
{
// ...
};
template <class L> class vector
{
// ...
};
void main ()
{
class key <int, vector<int> >; // instantiate template
}
Objects and functions of individual template classes can be accessed by any of the techniques used to access ordinary class member objects and functions.
![]()
Structuring Your Program Using
Templates
![]()
Examples of Accessing Class
Template Members
![]()
Class Template Declarations and
Definitions
Nontype Template Arguments
Explicitly Defined Template Classes
Function Templates
Template Syntax
Inlined
Differences between Class and
Function Templates
Syntax of a Template Class
Instantiation