Creating a crosshair in C++

Hi I would like to the character to have that crosshair when the game starts. I would like to do that c++ and attach it onto the player. I am really unsure on how to proceed with this as there are multiple answers on widgets.

My primary question is
1.> How to create a widget using C++.
2.>Where will the widget sit Character Class or HUD class.
3.> Can i create a c++ widget class from which i can create a blueprint and assign crosshairs images at a later date and assign to the other class
4.> If the game is supposed to be further extended into a multiplayer, then is the behaviour set any differently and where does the widget sit(character class or hud class).