Looking to get some advice on passing arguments to constructors

So would that mean I would create the initial constructor as
TestCombatAction::TestCombatAction(FObjectInitializer &ObjectInitializer) : Super(ObjectInitializer)
{
}

with the function

TestCombatAction::Init(UGameCharacter* target)
{
 this->target = target;
}

below.

And instead of

this->action = new TestCombatAction(target);

I would call it as

this->action = NewObject(target);
TestObjectAction::Init(target);

?