How to make Player "classes" in ShooterGame example

So, I am a begginer in UE4 and moving to C++ taking ShooterGame for study example.
I was wondering which way I can implement Player “classes” like BF does, Assalt can use that type of weapon and Sniper other.

The Weapons I think I need to make child class of ShooterWeapon_Instant, make it spawn in the ShooterCharacter.cpp and change the ShooterCharacter::UpdateCamera() function to recognise which weapon I’m wielding, to it takes my custom HUD or zoom.