best c++ books for beginners?

I'm currently using "C++: A Beginner's Guide" 2nd Edition by Herbert Schildt. I'm well aware you should always learn from more than one source anyway and as I'm pretty new to C++ don't know exactly how good or bad this book is, so can anyone recommend some really good ones?
I can't comment about that particular Schildt book, although Herbert Schildt is an author more notorious than any other for publishing 'sloppy' books which are crammed full of errors and misinformation. A lot of people seem to (naively) recommend his books due to his plain english writing style, but unfortunately that doesn't make up for the fact that he doesn't ever seem to publish revisions of his books with any of the errors fixed.


At the other end of the scale, I'd suggest one of the following books, which are all quite widely recognised as being good quality, modern and factually correct for a C++ beginner.

- Accelerated C++ - Andrew Koenig & Barbara E Moo - http://www.acceleratedcpp.com/
- C++ Primer 4th Edition - Stan Lippmann, Josie Lajoie & Barbara Moo
- Programming: Principles and Practice using C++ - Bjarne Stroustrup - http://www.stroustrup.com/Programming/

Accelerated C++ is a fairly short, but extremely concise, accurate and densely packed book (around 350 pages). Many people recommend it for others who are coming to C++ from another language, but it's also one of the most highly recommended C++ beginner books ever written. It's a "pure" C++ book in that it doesn't beat around the bush by trying to teach you the C language, and doesn't stray into the realms of computer science theory/data structures/etc.

C++ Primer 4th Edition (Not to be confused with Primer Plus) is a slightly older book which had been completely re-vamped. It's the largest book (almost three times the size of Accelerated C++), but covers just about every aspect of the language in a fair bit of detail

Programming: Princples and Practice is the most recent book of the three, and the author (Bjarne Stroustrup) is the man who invented the C++ language. He wrote the book originally to complement the University courses which he runs, so it teaches you how to be a programmer, and how to write functional software (with the main focus being on C++ of course). The main difference between this one and the other two is that it touches on some of the other concerns which you'll eventually run into as a beginner programmer/software engineer
If you have some experience in programming I think that "Thinking in C++" by Bruce Eckel will be useful. It is actual till nowadays.
"The Object-Oriented Thought Process" is a good book. It doesn't teach much syntax but it helps with OO theory.
Topic archived. No new replies allowed.