C++ Deferred construction of UObject with parameters / initial setup?

You can only use an exist UObject or Asset of same base type as a template.
Example:

UItem* NewItem = NewObject<UItem>( this, NAME_None, RF_NoFlags, BaseItemAssetPtr );

Whatever values are in the base Asset/Object, goes as default value for the newly created item instance. If your Ptr is to a Class / BP class, you must pass as a template its classPtr->GetDefaultObject() to the NewObject<> method.