C++ code quality is a difficult topic. There are some basic topics and other, more advanced. Sutter and Alexandrescu wrote a complete book on C++ standards to achieve good quality with basic and advanced topics, but Meyers wrote a book before, on the basics of C++.
Effective C++ is at its third edition, which is a complete rewrite with topics from the “old” Effective C++ and More Effective C++. So if you have one or the other, you will find yourself with additional content.
Content and opinions
When rewritten, the book changed its approach to C++. No more migration from C to C++, but using C++ with the const keyword, initializations, … Difficulty is growing, the first elements being eay to understand and to put into action, then we go into more complex fields – what does the compiler do under the hoods, the assignement operator, … -. The part on memory management is more complete and is about resources, not only memory, in fact. Design and class declarations/implementations/inheritance parts are relevant as well. Some items from the previous editions were moved to other sections, new items were added wisely. A part dedicated to generic programming was introduced with even some meta-programming. The section on new/delete is also new, with their overloading, an interesting topic.
The book is now several years old, but it is still current, and more C++ oriented (compared to the previous editions). Effective C++ handles C++0x with TR1 (even if it is far older than the forthcoming new standard) and even the Boost library. With this last edition, the book is again one of the best books for a beginner during his learning the langage, as the first edition was in the past. Even for an advanced developer, it is filled with tips that you should never forget.
[amazon template=iframe image&asin=0321334876]