| |||||||||||||||
This book is intended to enhance and expedite that learning process. Most successful C++ programmers cannot recite chapter and verse from the language rules; instead, they have acquired a set of idioms and techniques that have worked well for them. Our goal is to help the C++ novice learn those idioms that have been most useful in practice. We also point out some of the most common pitfalls.
We do not try to cover the entire language and we leave the ultra-precise definitions of language semantics to the reference manuals. Instead, we concentrate on helping the reader build programs that can be understood by someone who is not a C++ language lawyer. We not only discuss techniques for making programs elegant and fast; we also show how to make them easier to understand and maintain.
Acknowledgements Almost none of the ideas and programming idioms in this book are my invention. My goal has been to present, in a way that allows novice C++ programmers to learn them quickly, what I consider to be the most important strategies and tactics I have learned from others in the eight years I have been using C++. Some of these lessons were learned by studying actual development projects as they moved from C to C++; others came from discussions with talented individuals.
Many of the best ideas on templates and library design, including the ideas behind many of the container classes in this book, came from classes in the USL Standard Components that were originally designed by Martin Carroll, Andrew Koenig, and Jonathan Shopiro. I claim exclusive ownership of any errors in my versions. Andrew Koenig was a valuable resource as the local C++ language lawyer. The participants in the "C++ Strategies and Tactics" seminars I presented at several conferences helped inspire this book and refine its ideas. Other important ideas came from Tom Cargill, John Carolan, Jim Coplien, Mark Linton, Gerald Schwarz, and of course Bjarne Stroustrup, who also invented the C++ programming language that made the book possible in the first place.
Brian Kernighan read several drafts of this book, and his excellent feedback has been a lot of help. I would also like to thank David Annatone, Steve Buroff, Tom Cargill, Bill Hopkins, Cay Horstman, Lorraine Juhl, Peter Juhl, Stan Lippman, Dennis Mancl, Scott Meyers, Barbara Moo, Lorraine Weisbrot Murray, Bjarne Stroustrup, Clovis Tondo, Steve Vinoski, and Christopher Van Wyk for their comments on early drafts of this book. Lorraine Weisbrot Murray also contributed the encouragement, understanding, support, and love that helped make the entire effort feasible.
Rob Murray
0201563827P04062001
In chess, learning the rules for how the pieces move is simply the first step; to master the game, you must understand the strategies and tactics that guide each move. The same applies to C++. Knowing the right strategies helps you avoid the traps and work more effectively. Luminary Rob Murray helps beginning to intermediate C++ programmers take that next step by sharing his experience and advice.
Practical code examples are used throughout to illuminate useful programming strategies and warn against dangerous practices. To further ensure comprehension, each chapter ends with a list of the key ideas introduced in that chapter, along with questions to stimulate thought and discussion.
You'll begin by learning how to choose the right abstractions for your design, taking care to preserve the distinction between abstraction and implementation. You'll then look at the process of turning an abstraction into one or more C++ classes, with discussions ranging from high-level design strategies to low-level interface and implementation details.
Single and multiple inheritance are explored in depth, beginning with a discussion of where they fit in a design and followed by detailed examples that show how the concepts are used in practice. A separate chapter covers the techniques of building classes from which others can derive, and discusses the benefits - and costs - involved.
Rob Murray offers unprecedented insight into the new templates feature, beginning with the basics and walking you through several real-world examples. The author also describes a variety of specific techniques to make your programs faster, more reusable, and more robust. Exceptions are another new C++ feature; Murray gives advice on when they should - and should not - be used. The book concludes with a look at the process of moving a project from C to C++, exploring the human issues as well as the technical ones.
0201563827B04062001
Product Details
Would you like to update product info or give feedback on images?
|
|
Share your thoughts with other customers:
|
||||||||||||||||||||||
|
Most Helpful Customer Reviews
29 of 30 people found the following review helpful:
5.0 out of 5 stars
Brain embedding knowledge,
By A Customer
This review is from: C++ Strategies and Tactics (Paperback)
For the reviewer below that stated that this book is dated because it does not cover templates could not be farther from reality, as apparently he has not read the book nor has he looked at the table of contents. If my eyes are still functional, this book has two chapters consectutive dedicated to to templates, chapter 7 [Templates] and 8[Advanced Templates]. This book is easy to read and for the novice wanting to get up to speed on the syxtax of the language and more importantly when and how to use each contruct of the language, this book has no equal except two other books. The books are Kayshav Dattatri's C++ Effective Object Oriented Software Construction and James O. Copliens Advanced C++: Styles and Idioms from Prentice Hall and Addison Wesley respectively. This book is not even 300 pages which allows you to read it again and bolster what you vacumed on the first pass and ready for instinctive mastery for the second and third passes if you are really ambitious. The discussion on smart pointers is informative and will assist you in your way to patternizing COM code. This book is for all experience types and serves as a perfect desktop reference guide for C++ masters alike. With this book and the two mentioned above, plus the C++ IO Streams Handbook by Beale, there are no other books you should refer to, probably including Stroustrup's.
3 of 3 people found the following review helpful:
5.0 out of 5 stars
All C++ programer intermediate and up should have this book,
This review is from: C++ Strategies and Tactics (Paperback)
Once you have good knowledge of the basics and know basic OOP, you should start reading this book. This book has lots of good information reguarding design and loop holes all new programer can commit. But its best feature is that its so easy to understand.
2 of 2 people found the following review helpful:
5.0 out of 5 stars
Intermediate C++,
By
This review is from: C++ Strategies and Tactics (Paperback)
If you are confused about templates or about the design of class hierarchies this place is a very good place to start.
The writing is rather compact and to the point and avoids the trap of getting the reader into a long boring example. Yes sure, it's dated, (this book was written before STL came on the scene, but many of its ideas are there) but you may not need all the latest features of C++ right now. You should ease your self into C++. It's a little more advanced than an introduction but it won't weigh you down, and hey the book is light enough that you can read it in bed. It's a testimony to the idea that a well designed object has a very long lifespan.
Share your thoughts with other customers: Create your own review
|
|
Tags Customers Associate with This Product(What's this?)Click on a tag to find related items, discussions, and people.
|
|
This product's forum
Active discussions in related forums
Search Customer Discussions
|
Related forums
|