It's Generics: you declare the generic class
atype
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:
atype<int> intob;
the
int
tells the
atype
class to create an array of integers.
While:
atype<double> doubleob;
does teh same but with
double
values.
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.