The third alternative we will discuss is the best. This is to use the idea of a template. A template allows a class description to be parameterized, much in the same way that a function is parameterized. However, in this case the parameter values are types, and can be used as type names within the class description. This is perhaps best illustrated by an example.