I would like to concentrate on what happens when we say delete ptr. I know that a destructor of our class is called and then the amount of space new allocated is reclaimed.
If our object has other pointers etc, would that be reclaimed as well or is it up to the definition of our constructor to do so?
If the object that you delete has pointers to other objects or blocks of memory then no, those will not be automatically deleted if your object is deleted. You have to take care of that yourself; the appropriate place to do that is most likely in the destructor of the class of your object.
If you don’t deallocate all memory properly then your program has a memory leak.