I wouldn't say you are a beginner still! You know all the basics.
I presume you are aware of arrays, pointers, references and functions and are not up to STL or OOP yet.
I cannot tell you what is a great book and what is not but I personally use the C++ Primer 4ed. It's rather poorly organized and has a lot of cross-referencing but covers everything into the platform-specific factors of C++ and beyond. You will cover all the tenets of OOP (polymorphism, encapsulation, inheritance, templates, operator overload) and also STL.
^^^ I'm aware of arrays and pointers, though It's taking me a really long time to learn them. I'm also having problems with some other advanced functions, as my book simply keeps going on using advancing functions. I'll check out C++ primer on amazon though.
What do you mean by advanced functions?
Arrays and pointers are the most troublesome topic by far I find. Pointers you should get used to but arrays you can leave behind if you like, once you learn STL containers.
No, he can't. Even if he never uses them, arrays are among the most important constructs of the language, and they must be learned. Just because you don't use it, it doesn't mean other people won't. A programmer spends as much type writing code as he does reading code. Possibly even less.
If you want to buy a C++ textbook, I recommend "Absolute C++" by Walter Savitch. It is by far, the most complete book on C++ programming I have ever read. It is the textbook I used in University while doing my Computer Science degree, and it is the first book I check when I need to reference something about C++.