Bjarne Stroustrup’s definitive C++ book, The C++ Programming Language, is the only book you really need to give you a deep understanding of C++. It has a reputation of being a dense read — even difficult — but this just reflects the huge amount of information it contains. I have always considered this the best programming text I have ever read, so I thought I should try to spread the word.
The book covers everything about C++ in great detail. You’ll need to know C fairly well, and also be comfortable with programming and programming languages in general. With this background, you’ll get a lot out of the detailed explanations of how language features work, and also how they came to be the way they are.
Make sure you get the “Special 3rd edition” of this book — earlier ones are out of date. This edition is quite old now, but one of the good things about the C++ world is that things don’t change too fast. This book is still up to date and relevant to modern C++ programmers. The C++ Programming Language does not cover more recent, trendy topics like template traits and metaprogramming, but it still gives you a solid foundation for further exploration into the world of C++.
Sorry, I don’t agree. I think for most people that book is just for reference but not for learning (see for example the comments on amazon.com)
Also it is important to note that Stroustrup is against having to know C in order to “upgrade” to C++ (a lot of interesting comments can be found in his own web page on at&t.)
IMHO the best book for learning C++ today is the Professional C++ of Kepler and Solter.
regards,
Diego