can anyone recommend a good book to learn Arduino C++ from scratch
The first thing to do is stop referring to the language as Arduino C++. It is plain C++.
The second thing to get over is the idea that one book will be sufficient. I have half a dozen that cover various parts of the language.
ANY book on C++ is going to teach you something that you haven't seen before.