Character doesn't move even though everything is setup right

I rewrote everything I had in blueprint to c++.
Everything should be setup right, and the blueprint nodes are disconnected but I still can’t move. it doesn’t even go in the move forward function, which makes no sense to me.

//header
protected:		
	virtual void SetupPlayerInputComponent(UInputComponent* inputComponent) override;

	/** Handles moving forward/backward */
	UFUNCTION()
	void MoveForward(float val);

	/** Handles stafing movement, left and right */
	UFUNCTION()
	void MoveRight(float val);

	UFUNCTION()
	void TurnAtRate(float rate);

	UFUNCTION()
	void LookUpAtRate(float rate);

//cpp
void AMyProjectCharacter::SetupPlayerInputComponent(class UInputComponent* playerInputComponent)
{
	check(playerInputComponent);
	/// Input WASD
	playerInputComponent->BindAxis("MoveForward", this, &AMyProjectCharacter::MoveForward);
	playerInputComponent->BindAxis("MoveRight", this, &AMyProjectCharacter::MoveRight);
}

void AMyProjectCharacter::MoveForward(float value)
{
	UE_LOG(LogTemp, Warning, TEXT("forward"));
	if (value != 0.0f)
	{
		// add movement in that direction
		AddMovementInput(GetActorForwardVector(), value);
		this->VAxis = value;
	}
}

void AMyProjectCharacter::MoveRight(float value)
{
	UE_LOG(LogTemp, Warning, TEXT("sideways"));
	if (value != 0.0f)
	{
		// add movement in that direction
		AddMovementInput(GetActorRightVector(), value);
		this->HAxis = value;
	}
}

I don’t know what to do anymore. I’m certain it’s just some stupid mistake but I can’t seem to find it.

EDIT

I added starfekey and moveforwardkey and now it works. But why. there is not difference whatsoever.
Can someone explain that to me?

Do you made the blueprint as a child from the c++ class? If not, then you have to reparent it to the c++ class. Under your Character blueprint select class. In the Details Panel you can then choose wich parent the blueprint should have. Maybe you missed this?

Äh…and the Input is false. You have to write: PlayerInputComponent. Not playerInputComponent.

Try this: https://docs.unrealengine.com/latest/INT/Programming/Tutorials/FirstPersonShooter/2/3/index.html

void AFPSCharacter::MoveForward(float Value)
{
    // Find out which way is "forward" and record that the player wants to move that way.
    FVector Direction = FRotationMatrix(Controller->GetControlRotation()).GetScaledAxis(EAxis::X);
    AddMovementInput(Direction, Value);
}

void AFPSCharacter::MoveRight(float Value)
{
    // Find out which way is "right" and record that the player wants to move that way.
    FVector Direction = FRotationMatrix(Controller->GetControlRotation()).GetScaledAxis(EAxis::Y);
    AddMovementInput(Direction, Value);
}

the blueprint is parented to the c++ class.
and if one “p” would make such a difference why am I able to use all the other keybindings I’ve written in this c++ class. I can jump, crouch, and move my camera.
I kinda fixed my problem but still don’t understand why it occurs. I created a new input in the project settings and use that one. And it works. I don’t understand why though.