In his book
The C++ Programming Language,
Stroustrup gives a bottom-up overview of the
C++ programming language. One of the most interesting parts of the book is that Strupstrup, as the
designer of C++, gives you his opinions as to how C++ should be used. He explains how the features of C++ support various
programming paradigms -
procedural programming,
modular programming,
object-oriented programming, and
generic programming. In fact, he devotes an entire section (three chapters) of the book to explaining how C++ should be used to produce
object-oriented systems.
The discussion is fairly philosophical and dense at times. Sometimes you'll have to reread a sentence a few times to understand what it means. You get the feeling that Stroustrup is more interested in providing an analytical study of the language rather than a How-To. The book is definitely not for people new to object-oriented programming. I don't think it's ideal even for people who are new to C++ but already know OOP. This book is recommended for C++ experts who want a deeper understanding of the language. It's definitely easier reading than a copy of the C++ standard.
Stroustrup also gives a lot of detail on the obscure features in the language. However, he does not give enough detail for the book to replace a copy of the C++ standard. Often, the details for a particular feature are not consolidated in one place and can be hard to find. In that sense, this book doesn't serve very well as a reference manual either.