How to use the Player Controller class in C++

Player Controller and Character Movement are completely separate classes.
If you want to make a custom player controller, you need to derive from APlayerController.
APlayerController is an AActor, and part of the Game Framework.
UCharacterMovementComponent is an optional component of a Character/Pawn/Actor.