some "Camera component" errors

So i’m following the basic UE tutorial on how to make a simple first person shooter, and in my attempt to replicate the code in the documentation, I’ve run into some confusing errors(using my logic, I’ve copied the code almost word for word, so there should be no reason as to even be getting these errors in the first place):

‘FPSCameraComponent’: is not a member of ‘AFPSCharacter’
‘FPSCameraComponent’: undeclared identifier
illegal member designator in offsetof
unexpected token(s) preceding ‘;’
missing type specifier - int assumed. Note: C++ does not support default-int

My character.h file:

#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "FPSCharacter.generated.h"

UCLASS()
class BASICFPS_API AFPSCharacter : public ACharacter
{
	GENERATED_BODY()

public:
	// Sets default values for this character's properties
	AFPSCharacter();

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;

	// Called to bind functionality to input
	virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;

	//functions to handle forward and backward movement.
	UFUNCTION()
		void MoveForward(float value);
	UFUNCTION()
		void MoveRight(float value);


	//functions to handle jumping.
	UFUNCTION()
		void StartJump();
	UFUNCTION()
		void StopJump();

	//first person camera
	UPROPERTY(VisibleAnywhere)
		UCameraComponent * FPSCameraComponent;
	
};

My Character.cpp file:

#include "FPSCharacter.h"
#include "Engine.h"
#include "Camera/CameraComponent.h"


// Sets default values
AFPSCharacter::AFPSCharacter()
{
 	// Set this character to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;

	//creates an fps camera component.
	FPSCameraComponent = CreateDefaultSubobject<UCameraComponent>(TEXT("First Person camera"));

	//attach camera copmponent to capsule(?)
	FPSCameraComponent->SetupAttachment(GetCapsuleComponent());


	//position camera slightly above eyes
	FPSCameraComponent->SetRelativeLoction(FVector(0.0f, 0.0f, 50.0f + BaseEyeHeight));

	//allow pawn to control camera.
	FPSCameraComponent->bUsePawnControlRotation = true;
}

// Called when the game starts or when spawned
void AFPSCharacter::BeginPlay()
{
	Super::BeginPlay();

	if (GEngine)
	{
		GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Blue, TEXT("This character is currently in use."));
	}
	
}

// Called every frame
void AFPSCharacter::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

}

// Called to bind functionality to input
void AFPSCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);

	//create the bind axis fo the move forward and move right Bindings
	PlayerInputComponent->BindAxis("MoveForward", this, &AFPSCharacter::MoveForward);
	PlayerInputComponent->BindAxis("MoveRight", this, &AFPSCharacter::MoveRight);  

	//sets the bidnings for looking up.
	PlayerInputComponent->BindAxis("Turn", this, &AFPSCharacter::AddControllerYawInput);
	PlayerInputComponent->BindAxis("LookUp", this, &AFPSCharacter::AddControllerPitchInput);

	//Jump Bindings.
	PlayerInputComponent->BindAction("Jump", IE_Released, this, &AFPSCharacter::StartJump);
	PlayerInputComponent->BindAction("Jump",IE_Released, this, &AFPSCharacter::StopJump);


}


void AFPSCharacter::MoveForward(float value)
{
	//find out which ay is forward and record the player's request to moe that way.
	FVector Direction = FRotationMatrix(Controller->GetControlRotation()).GetScaledAxis(EAxis::X);
	AddMovementInput(Direction, value);
}


void AFPSCharacter::MoveRight(float value)
{    
	//find out which ay is forward and record the player's request to moe that way.
	FVector Direction = FRotationMatrix(Controller->GetControlRotation()).GetScaledAxis(EAxis::Y);
	AddMovementInput(Direction, value);
}


void AFPSCharacter::StartJump()
{
	bPressedJump = true;

}

 void AFPSCharacter::StopJump()
{
	bPressedJump = false;
}

The part of the tutorial i’m following:
https://docs.unrealengine.com/latest/INT/Programming/Tutorials/FirstPersonShooter/2/7/index.html

any clue as to what is going on? thanks in advance.

Try do declare the camera with a Forward declaration. Like: class UCameraComponent * FPSCameraComponent;
Then it should recognize the new Component. You have included the Header file, so there should not be a Problem.