Programming - principles and practice using C++[1] should be appropriate for beginners. It's a long book at 1000+ pages, but it is designed for novices and explains subjects such as why one needs functions, how to handle errors, GUIs, testing, etc.
The C++ Programming language (4th ed)[2] is for experienced programmers. A tour of C++ is the short version of the former.[3]
[1]: http://www.stroustrup.com/programming.html