- Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)
Professional C++ Paperback – Oct 4 2011
|New from||Used from|
Special Offers and Product Promotions
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your e-mail address or mobile phone number.
From the Back Cover
Master the latest release of the C++ language: C++11
C++ is often the language of choice for writing fast, powerful, and enterprise-class object-oriented programs, be it games or major commercial software applications. However, there's no two ways around it: C++ can be difficult to master. With this no-nonsense book, you will learn to conquer the latest version of the C++ language: C++11. The authors share real-world examples, decipher little-known features of C++, and reveal the significant changes to C++ that accompany the latest release. Ultimately, you'll discover programming methodologies, reusable design patterns, and good programming style that will increase the quality of your code and improve your programming efficiency.
Professional C++, 2nd Edition:
Offers detailed code examples that you can plug into your own code
Takes you on a technical tour of C++ and the STL, and explores the unusual and quirky aspects of this language
Exposes best practices for using the more advanced features of C++, including operator overloading, managing memory, writing templates, and writing multithreaded code
Discusses techniques for writing cross-language and cross-platform code
Teaches you the importance of code reuse as well as the nuances of writing readable C++ code
Wrox Professional guides are written by working developers to address everyday needs. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
Join our Programmer to Programmer forums to ask and answer programming questions about this book, join discussions on the hottest topics in the industry, and connect with fellow programmers from around the world.
Take advantage of free code samples from this book, as well as code samples from hundreds of other books, all ready to use.
Find articles, e-books, sample chapters, and tables of contents for hundreds of books, and more reference resources on programming topics that matter to you.
About the Author
Marc Gregoire is a Microsoft Visual C++ MVP, an active contributor to CodeGuru, and blogs at www.nuonsoft.com/blog/. Marc is a software architect, worked for Siemens and Nokia Siemens Networks as a software consultant, and now works for Nikon Metrology.
Nicholas A. Solter is an application architect at ContextOptional, Inc., a social media advertising company.
Scott J. Kleper is cofounder and CTO of ContextOptional, Inc.
Inside This Book(Learn More)
What Other Items Do Customers Buy After Viewing This Item?
Top Customer Reviews
Most Helpful Customer Reviews on Amazon.com (beta)
- Contains a lot of information on various aspects of C++ programming, which can be used by people of various levels.
- Provides a more practical approach to teaching and tries to show how real programmers use the language.
- Uses C+11 and provides modern approaches to programming in C++.
- Lacks focus. The first few chapters are for beginners, while later chapters are focused for more experienced programmers.
- Teaches some bad programming habits. For example, the virtual keyword should not be used before everything as the authors recommend.
This book is not bad. The title is misleading because it sounds like it is for more experienced programmers. However, the problem is that
this book is not for beginners either, although it tries to teach basic syntax in the first few chapters. Which puts it in a position where
you probably will learn from this book, but you will either not be able to grasp all the concepts or have to skip chapters because you already
understand the information. It would have been a much better book if it was more focused, rather than trying to accommodate for all levels.
Surely, it deals the basic features of C++ 'grammar, class, inheritance, polymorphism, in/out, exception handling, and so on', but the real good point of this book is that it dissolves the features of C++11 [special keywords (like final, constext, etc.), unordered_*, module for regular expressions, ...] into the basic stuffs well.
A Good Book~!
This is a very readable and helpful guide to C++ OOP. It is meant to be a programming guide rather than merely covering syntax (as C++ Primer does for example). As the original edition back cover said, "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."
Coming into this with extensive C and other programming experience, including some C++ many years ago, this book was ideal for me. I especially appreciated the authors' ability to give a very good foundation for developing well-designed, robust C++ code. I went from a very solid C programmer to developing using a new C++ mentality in a couple of weeks.
The authors are obviously quite experienced and knowledgeable in C++ and OOP, and write in an enjoyable, easy-to-follow manner. They don't just present C++, they discuss every aspect of how to develop great code using C++. They take a very reasonable and competent approach to coding, pointing out pitfalls and providing much guidance together with good explanations of their reasoning. This book doesn't just tell you how you can do something in C++, it explains how to do it well.
Professional C++ is for an intermediate to advanced programmer with either some C++ experience or a good deal of other programming experience. It is not meant to be an exhaustive exposition of C++ (although it does cover all the basics of the language), but it is certainly sufficient to get a developer not only up and coding, but doing so with better style and more competence than many seasoned C++ professionals.
Some of the many new C++ features covered in this new edition include auto variables, range-based for loops, std::array, strongly-typed enumerations, hash tables, shared_ptr/unique_ptr, lambda expressions, defaulted functions, uniform initialization, nullptr, random number engines, delegating constructors, object alignment, move constructors, and built-in concurrency. Mr. Gregoire has also added considerable new material not directly related to C++11 such as sections on Agile/Scrum and source code control in the software engineering chapter, and a discussion of the Iterator design pattern.
The physical quality of this edition is improved, with whiter, high quality paper vs. the old newspaper-like pages. The new fonts are more sleek and modern, echoing many other programming texts, although I find it less inviting to read. This edition loses the grey background for all new code, making it harder to distinguish code from text as I flip through; instead, important tips are highlighted in grey to ensure the reader takes note. The code examples are shortened and less complete in themselves, but there are code improvements and references under each code block to the corresponding file on the website with the full code example.
Some of the many topics I found interesting and useful include: code reuse, software engineering methods (including a several page synopsis of extreme programming), exceptions, STL, frameworks, multithreading, and design patterns. On some important topics that could be books in themselves, enough material is presented here to give the reader a basic understanding of the subject and an awareness of the issues so that the reader can decide whether to pursue the subject further.
Finally, there is an excellent section on preparing for a C++ interview. It covers all the common C++ interview questions and will help you impress with your knowledge of the language. It also serves as an excellent quick review of the book and important language features.
Although this book was all I really needed to get up and going, I found several other books also quite helpful. C++ in a Nutshell is a very complete reference for experienced C++ programmers, and the new third edition of Effective C++ by Scott Meyers will give you a deeper understanding of the subtleties of C++. Of course, The C++ Programming Language, 4th Edition by the inventor of C++ is a must-have for any serious C++ programmer. Finally, Object-Oriented Design Heuristics by Arthur J. Riel is a classic on OOP.
This is not just a C++11 book; it covers most of the C++ language and explains as it goes what is different in the new standard. But, there's more than just C++ coding in this book - it also covers application design and planning as well as stylistic considerations as well. These are just as important as knowing the syntax though these subjects apply to more than just a single language.
The book's material is broken down into four sections and 29 chapters. Each of the four sections progresses into more advanced material than the previous (which I hope is obvious). I did notice something interesting about the ordering and grouping, though - this book is almost organized like a textbook that could be used in a course setting. Mingled in with language features is software design and engineering concepts that are not language-specific. The only think lacking that would otherwise turn this book into a college textbook on Software Engineering with C++ is chapter exercises. This is not necessarily a bad thing, unless the idea is to use the book for teaching...
The final section of the book, "Part IV: C++ Software Engineering", is a collection of seven chapters outlining good software engineering concepts including design patterns. It is not an exhaustive study of such but is an excellent introduction to several important design patterns. There is also a chapter on good debugging techniques, another on testing and another on cross-platform development.
There are three chapters of this book that I think merit special attention. The first two are the chapters that deal with metaprogramming (generic coding with templates). This book provides excellent coverage and explanation of this material. I have struggled with template-based code in the past and I wish I had had this book when I was learning. The other chapter deals with multithreaded programming. While I have a reasonably good grasp on writing multithreaded applications this chapter really makes the concepts straightforward and easy to understand.
As I mentioned above, I purchased this book with the purpose of learning C++11 features. This book covers a lot of them and makes it a point to specifically point out features that are specific to the new standard. What this book does NOT do is provide a dedicated list or even a summary of the new features in the standard, which in my opinion is a shortcoming.
Professional C++ is a good book on C++ which includes coverage of the C++11 standard. It is not perfect and it gets deep into software engineering topics that are not necessarily specific to C++ but it does cover the language very well and very accessibly. When considering an up-to-date book on C++, this book is one that's very much worth consideration.
C++ is a language that can be very complex, and this book really does cover a wide range of material. Having said that, oftentimes, I felt overwhelmed after reading some of the chapters, I feel that some things were not explained in a clear manner. I felt that the flow was uneven, an example being within the first two chapters - (if I recall) they showed a short example of a student registration system. It seems like a complicated subject to tackle at the time considering the reader was barely learning the basics of the language. In other sections, the book did do a good job, I particularly thought the explanations on the STL Containers/Data Types was very informative.
I have not read other books on C++, if you work really hard you can learn it with this book. I do wonder if perhaps there might be an easier book for the task.
Look for similar items by category
- Books > Computers & Technology > Programming > C
- Books > Computers & Technology > Programming > Languages & Tools
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Object-Oriented Design
- Books > Textbooks > Computer Science & Information Systems > Programming Languages