Paperback: 320 pages
Publisher: Addison-Wesley Professional; 3 edition (May 22, 2005)
Product Dimensions: 7.3 x 0.8 x 9.1 inches
Shipping Weight: 1.4 pounds (View shipping rates and policies)
Average Customer Review: 4.6 out of 5 stars See all reviews (125 customer reviews)
Best Sellers Rank: #32,400 in Books (See Top 100 in Books) #10 in Books > Computers & Technology > Programming > Microsoft Programming > C & C++ Windows Programming #13 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C++ #114 in Books > Textbooks > Computer Science > Programming Languages
How do you improve a book that has been known as a "bible" in the C++ community for years? As Scott mentions at the beginning of the text, he almost threw everything out, and started from scratch. When I first say the book, I thought that there are five new items that were added to the book, but I couldn't be more wrong. As you might have guessed, C++ has gone thru a number of significant changes over the past decade, and the third edition of this book is updated to take advantage of the new editions to the C++ standard. In reality, almost every item in this book has gone thru a re-write. Many have been consolidated and new chapters, topics and many new items have been added. A few items that did not make sense anymore like items 2, 3 and 4 in the second edition are removed from this third edition.Scott breaks down the c++ language into 4 subparts:* The old C subsystem. Before all these advanced programming languages such as Java and .NET came, C was the language of choice. C++ is "translated" to C first, and then complied and linked to an executable.* OO C++, which is C with Classes. This is where the concept of Object Orientation in C++ started. Even though this concept was very much new a decade ago, it is very much part of a programmer's vocabulary.* Template C++, which is the newest edition to the C++ standard and it brings with it the concept of Template Metaprogramming. This concept is very much new, and this book has dedicated a whole chapter around templates, and template metaprogramming.* STL, which is the C++ Standard Template Library. Again, STL was a new concept a few years back, but it is very much an established notion in C++.
"Effective C++: 55 Specific Ways to Improve Your Programs and Designs" recently came out in its 3rd edition. The first came out in 1991, making this line of book revisions positively ancient in high tech terms. But you should consider the elapsed 14 years an investment in wisdom, not obsolescence. Unlike the 2nd edition, this is a complete rewrite from the ground up. More than that, Scott Meyers begins from first principles, reevaluating what topics are most important to the programmers of 2005.This was a very strategic and insightful move. Not only has the language evolved over that time, but the audience has too. In the first edition, the likely readers were coming from languages like C. Now the likely readers cross over from some other object-orient language, like Java or C#. Keep in mindthat the author focuses strictly on standard C++; he does not address anything that is platform-specific.Like its predecessors, the items can be read stand-alone, and he does cross reference related items. The 55 items are grouped into the following chapters:Chapter 1: Accustoming Yourself to C++Chapter 2: Constructors, Destructors, and Assignment OperatorsChapter 3: Resource ManagementChapter 4: Designs and DeclarationsChapter 5: InheritanceChapter 6: Implementations and Object-Oriented DesignChapter 7: Templates and Generic ProgrammingChapter 8: Customizing new and deleteChapter 9: MiscellanyI would hate to have to learn the lessons in this book by hard experience. It would be costly in time and unfortunately might even cover more than one employment span.