Using function templates, you can define functions that have a parameter for a type.
Using class templates, you can define a class with a type parameter for subparts of the class.