It's Generics: you declare the generic class
as accepting a Type for each instance when that instance is created, and it produces an instance which is specific to that type.
So when your code says:
class to create an array of integers.
does teh same but with
This isn't something it;'s easy to explain in a little text box, so if you don't understand then it's time to start reading: Templates - C++ Tutorials
] and An Idiot's Guide to C++ Templates - Part 1
] are good starting points.