You don't need to allocate memory to a pointer if you're just using it to point to already constructed objects.
Code:
SimpleCat First,Second;
SimpleCat *p=new SimpleCat;
There are four objects here. Three are of type SimpleCat and one is of type pointer-to-SimpleCat. The expression
new SimpleCat allocates an instance of SimpleCat on the heap and returns a pointer to it.
If you just want to point to your objects, you can do this:
Code:
{
SimpleCat First, Second;
SimpleCat *p;
p = &First; // now p points to first
int firstAge = p->itsAge;
p = &Second; // now p points to second
int secondAge = p->itsAge;
} // end of scope.. no need for delete because no objects
// were allocated with new