Switching from 3rd person to firtst person c++

I am trying to setup my game so that I am able to switch between third person and first person view. I have been searching around how to do this as I am relatively new to unreal engine and c++. I have not been able to find an actual post that properly explains how to achieve this. I keep finding half answers to the question that do not fully explain how to implement it.

So I have my character class where I setup the input component for when the right mouse click is pressed, this calls my ZoomIn() function which is supposed to change the camera view to a FPS. when the right mouse is released it calls the ZoomOut() function.

I have two UCameraComponents (Camera1 & Camera2) and I want to switch between them. Do I do this in the character class? I have seen answers saying that I need a player controller?

So do I create a playercontroller class and create the two ZoomIn/out functions inside that and then just call them from the character class, I think this is what I have to do from what I have been searching, but I do not know how to properly get it working. If Anyone could explain how I set up the functions in the controller and call them from my player class, i would really be thankful.

You can set a new viewtarget. Look here: APlayerController | Unreal Engine Documentation

You Need:

virtual void SetViewTargetWithBlend
(
    class AActor * NewViewTarget,
    float BlendTime,
    enum EViewTargetBlendFunction BlendFunc,
    float BlendExp,
    bool bLockOutgoing
)

I hope this helps you