I’m probably not the best person to explain this but will have a go with my understanding of it. This is more from a practical point of view rather than what the compiler actually does with the memory you ask it to create.
The new operator creates an object on the heap and you’re right, returns a pointer to that object. However pointers are really just a number, a reference to some block of memory so you can copy them around etc. without altering the memory. You have to de-reference the pointer to act on the object it points to (using *pointer or pointer->). Therefore you can call the new operator, store the pointer in a local variable and have it go out of scope. The object still exists in memory but you no longer have any reference to it, this is a typical way of leaking memory.
In the ResizableWindow when you call setContentComponent(pointer) you pass a pointer to your created object to the instance of that ResizableWindow, this is then held as a member variable in a special class called SafePointer. This class acts just like a normal pointer except you can check to see if it is zero before using it to avoid dereferencing a null pointer (which will cause a crash).
If you look in the destructor of ResizableWindow you’ll see that this SafePointer is used to delete the object that you set with setContentComponent(). It just means you don’t have to worry about deleting it yourself. You simply create the component and tell the window to use that as its content, it then effectively takes ownership of that object.
I think Jules uses ‘content component’ to indicate that there will be only one component held by the parent eg. windows, tabbed components, pop-ups etc. The idea is that you create a main component that creates all of its sub components (which could be many sliders, text boxes etc.) as children and then use the main component as the content of the window.
Sorry if that’s made it more confusing for you, there are definitely too many references to component in that explanation but that’s kind of unavoidable.