a “new” object...
p2 = new cylinder(2., 5.);
the new operator dynamically creates (instantiates) a new object of the specified class.
It allocates the memory required to set up the new object, and initializes variables as needed.
It then calls the appropriate constructor for the new object.
It then returns a pointer to the just created object.
In our code, we can dynamically create and delete as many objects as we need (resources permitting). This is a very powerful concept.