If i’m not mistaken… I think is currently writing the definitive programming book for Unreal Engine 4 so you might want to ask him directly on it’s status.
Otherwise to answer your questions directly:
1)If you want to improve your C++ knowledge simply use the answerhub to find what you need or visit various C++ boards across the net. If you’ve got a question then i’m pretty sure it’s been answered once or twice before.
UE4 uses a large framework which pushes C++ in an advanced direction. It’s definitely intimidating when you first look at it but once you start to work with it a little more then it becomes significantly easier. It all depends on which area you want to work with. E.G, the hud, animations, combat, gameplay or controls.
I’ll go ahead and post some useful references for you.
You can be a beginner with C++ to start adding gameplay code to a project. Just keep the scope of what you are doing to small chunks.
Books for GameEngines all are terrible. There is no way any book can have up to date information on a GameEngine that is being actively developed. There are lots of online sources for learning UE4, and the online documentation, while sometimes out of date has more of a chance of being right than a book.
For books on C++. It really depends on your experience. If you are a beginner then get a book that has Primer in the title or Bjarne Stroustrup Programming: Principles and Practice Using C++. If your intermediate to advanced then get Scot Myers Essential C++ and Bjarne Stroustrup The C++ Programming Language.
But, the best way to learn how to program is just to program. Because with UE4 you don’t have to do any of the setup you can just start with game changing features right away.
It depends, if you want to use blueprints then you barely need c++ knowledge (because it’s visual and easy), but if you want to use c++ then you need a general knowledge of it