[C++] Why can't I control a pawn?

Becauase in order to make pawn be controlled it needs to be possessed by PlayerController of player that suppose to control it, possession by default will also change view target to that pawn so camera will change. PriftD is one way of doing it, default spawn system automaticly posses spawned pawn, other way if you already have pawn on level you use Possess function:

So in short way UE4 control model works is you have pawn class which is controlable actor and you got controllers which control those pawns, theres PlayerController spawned for each player which transfers player input to move pawn, but there also AI controllers for UE4 AI system to control the pawn, but you can create even more custom controller if you like.