Class Templates
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

Class Templates

You can use class templates to create a family of classes that operate on a type. Class templates are parameterized types. They imply that a separate class could be created for each conceivable value of the parameters (known as template arguments) passed in.

Template arguments can be types or constant values of a specified type. For example:

// class_templates.cpp
template <class T, int i> class TempClass 
    TempClass( void );
    ~TempClass( void );
    int MemberSet( T a, int b );
    T Tarray[i];
    int arraysize;

int main()

In this example, the templated class uses two parameters, a type T and an int i. The T parameter can be passed any type, including structures and classes. The i parameter has to be passed an integer constant. Because i is a constant defined at compile time, you can define a member array of size i using a standard array declaration.

For more information, see:

Other Resources


© 2015 Microsoft