A template is simply a way of reducing the amount of code you need to write when developing classes.
For example the STL vector
std::vector intList;
std::vector floatList;
This will cause the compiler to actually make two classes behind the scenes, similar to if you copy and pasted the code but replaced all references to int with float.
Without templates you would need to create a vector class for each type you want to handle. There are more complex uses for classes but this is the easiest one to use, create & understand.
Once compiled the two sets of code for vector
and vector
are completely separate, but an IDE will step through the template class when debugging.