How does FObjectInitializer work?

I’ve been reading the documentation about this.

UMyObject::UMyObject(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
    // Initialize CDO properties here.
}

I know that this is used so that you can run the ObjectInitializer’s constructor within your new classes constructor. ObjectInitializer is declared as a reference of type FObjectInitializer. Does that mean you have to supply the code with a reference parameter?

To override default components classes