Hello!
I was kind of hoping that someone else would answer this first. Maybe someone will give a second opinion.
I have never actually read this book, and so I cannot give that sort of feedback, but after looking at the Table of Contents, it does seem like one of the best books around.
The only thing which I am concerned about (and definitely get a second opinion on this) if your choice of language. You see, I started off with C++, and it went badly, and I had to change language, and come back to C++ later (I am biased by my own experiences, which I why I don't like answering this question).
Learning C++ for me started off very well, and I managed to quickly pick up most of the language, and console programming (the book you have chosen only covers console programming). I did all that, got good at it, and wanted to progress. Unfortunately, I got well and truly stuck. There is an extraordinarily huge jump between simple C++ (useless console applications), and making proper, useful programs with C++. I couldn't make that jump. I just could not do it. I could not find books, and it was all too difficult (I am talking about what happens immediately after you finish reading that book - you will know the language, but will not be able to do anything useful with it)
I stagnated for many months, until I asked my IT Teacher what to do. He didn't know, but passed me over to the Network Manager (an awesome programmer, who headed up the coding for a
HL2 re-write) and he pointed me towards C# (there is something called Managed C++.net, which could also fill this gap, but I didn't know about it at the time, and still wouldn't recommend it). This allowed me to start creating useful programs, and my programming progressed from there (practice and experience, rather than book based).
Fortunately, both C# and C++ are beautiful and professional languages (C# is truly beautiful when you learn the advanced parts of it - the parts which truly differentiate it from other languages) (whereas Java is very much the "University" language), and because they are both C-based, the syntax and style is very similar, and so you can easily switch back to C++ when you are ready. Because of this, it also allowed me to jump from the C++ into C# at the deep end, although if I were to start again, I wouldn't have wasted a year learning C++, only to forget it all, but would have started with C#, and moved to C++ when ready.
However, I am so biased by my own bad experiences of C++ as a starting language (it can be done) that I want you to take this with a pinch of salt.
Good luck!