Synopses & Reviews
C++ is one of the most popular programming languages, but this fast and powerful language is also notoriously complex. Many useful aspects of C++ remain a mystery to even the most experienced programmers. Too often, programming books concentrate more on the syntax of the language and less on its real-world applications. This code-intensive, practical guide changes that by teaching all facets of C++ development, including effective application design, testing, and debugging. You'll learn simple, powerful techniques used by C++ professionals, little-known features that will make your life easier, and reusable coding patterns that will bring your basic C++ skills to the professional level.
After a quick review of C++ fundamentals, the authors launch into teaching you how to use C++ in your daily work. They show you various programming methodologies and good programming style, as well as ways to increase the quality of your code and improve your programming efficiency. You'll discover how to write cross-language and cross-platform code, how to perform unit testing and regression testing, and how to use the standard C++ library. By the end of the book you'll be armed with a wealth of reusable coding patterns that can be applied to all your projects.
You will be able to master the C++ language with all its idiosyncrasies, and take advantage of its powerful capabilities for large-scale software development.
What you will learn from this book
- Different programming methodologies and high-quality programming styles
- Ways to take advantage of C++ for large-scale software development
- Methods to ensure bug-free code
- An appreciation for object-oriented design
- How to use libraries and patterns to write better codewith less work
- The best ways to manage memory in C++
- Techniques for input and output
Who this book is for
This book is for programmers and developers who want to take their C++ skills to the professional level. Some knowledge of basic C++ or significant experience with C and/or Java is required, as well as a solid foundation in programming fundamentals and familiarity with a compiler.
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
Synopsis
- Geared to experienced C++ developers who may not be familiar with the more advanced features of the language, and therefore are not using it to its full capabilities
- Teaches programmers how to think in C++-that is, how to design effective solutions that maximize the power of the language
- The authors drill down into this notoriously complex language, explaining poorly understood elements of the C++ feature set as well as common pitfalls to avoid
- Contains several in-depth case studies with working code that's been tested on Windows, Linux, and Solaris platforms
Synopsis
* Contains several in-depth case studies with working code that's been tested on Windows, Linux, and Solaris platforms
About the Author
Nicholas A. Solter studied computer science at Stanford University, where he earned bachelor of science and master of science degrees, with a concentration in systems. While a student, he worked as a teaching assistant for several classes ranging from introductory computer science for nonmajors to an upperdivision course on group projects and software engineering.
Now a software engineer at Sun Microsystems, Nick programs primarily in C and C++ in his work on high-availability software. His previous work experience includes several stints in the computer game industry. At Digital Media International, he was the lead programmer on the multimedia educational game, The Land Before Time Math Adventure. During an internship at Electronic Arts, he helped develop the Course Architect 2000 golf course–editing tool for the Tiger Woods PGA Tour 2000 game.
In addition to his industry experience, Nick taught C++ for one year as an adjunct professor of computer science at Fullerton College. When not working, Nick enjoys reading, playing basketball, taking care of his son Kai, and spending time with his family.
Scott J. Kleper began his programming career in elementary school, writing adventure games in BASIC for the Tandy TRS-80. As the resident Mac geek at his high school, Scott moved to higher-level languages and released several award-winning shareware applications.
Scott attended Stanford University, where he obtained bachelor of science and master of science degrees in computer science, with a concentration in human-computer interaction. While in college, Scott served as a teaching assistant for classes involving introductory programming, object-oriented design, data structures, GUI frameworks, group projects, and Internet programming.
Since graduating, Scott has served as a lead engineer on the founding teams of several companies and is currently a senior software engineer at Reactivity, Inc. Outside of work, Scott is a compulsive online shopper, an avid reader, and an awful guitarist.
Table of Contents
Introduction.
Part I: Introduction to Professional C++.
Chapter 1: A Crash Course in C++.
Chapter 2: Designing Professional C++ Programs.
Chapter 3: Designing with Objects.
Chapter 4: Designing with Libraries and Patterns.
Chapter 5: Designing for Reuse.
Chapter 6: Maximizing Software-Engineering Methods.
Part II: C++ Coding the Professional Way.
Chapter 7: Coding with Style.
Chapter 8: Gaining Proficiency with Classes and Objects.
Chapter 9: Mastering Classes and Objects.
Chapter 10: Discovering Inheritance Techniques.
Chapter 11: Writing Generic Code with Templates.
Chapter 12: Understanding C++ Quirks and Oddities.
Part III: Mastering Advanced Features of C++.
Chapter 13: Effective Memory Management.
Chapter 14: Demystifying C++ I/O.
Chapter 15: Handling Errors.
Part IV: Ensuring Bug-Free Code.
Chapter 16: Overloading C++ Operators.
Chapter 17: Writing Efficient C++.
Chapter 18: Developing Cross-Platform and Cross-Language Applications.
Chapter 19: Becoming Adept at Testing.
Chapter 20: Conquering Debugging.
Chapter 21: Delving into the STL: Containers and Iterators.
Part V: Using Libraries and Patterns.
Chapter 22: Mastering STL Algorithms and Function Objects.
Chapter 23: Customizing and Extending the STL.
Chapter 24: Exploring Distributed Objects.
Chapter 25: Incorporating Techniques and Frameworks.
Chapter 26: Applying Design Patterns.
Appendix A: C++ Interviews.
Appendix B: Annotated Bibliography.
Index.