Home | Amazing | Today | Tags | Publishers | Years | Account | Search 
Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)

Buy

This book is a direct outgrowth of my experiences teaching C++ to professional programmers. I've found that most students, after a week of intensive instruction, feel comfortable with the basic constructs of the language, but they tend to be less sanguine about their ability to put the constructs together in an effective manner. Thus began my attempt to formulate short, specific, easy-to-remember guidelines for effective software development in C++: a summary of the things experienced C++ programmers almost always do or almost always avoid doing.

I was originally interested in rules that could be enforced by some kind of lint-like program. To that end, I led research into the development of tools to examine C++ source code for violations of user-specified conditions.1 Unfortunately, the research ended before a complete prototype could be developed. Fortunately, several commercial C++-checking products are now available. (You'll find an overview of such products in the article on static analysis tools by me and Martin Klaus.)

Though my initial interest was in programming rules that could be automatically enforced, I soon realized the limitations of that approach. The majority of guidelines used by good C++ programmers are too difficult to formalize or have too many important exceptions to be blindly enforced by a program. I was thus led to the notion of something less precise than a computer program, but still more focused and to-the-point than a general C++ textbook. The result you now hold in your hands: a book containing 50 specific suggestions on how to improve your C++ programs and designs.

In this book, you'll find advice on what you should do, and why, and what you should not do, and why not. Fundamentally, of course, the whys are more important than the whats, but it's a lot more conveЯкорьnient to refer to a list of guidelines than to memorize a textbook or two.

Unlike most books on C++, my presentation here is not organized around particular language features. That is, I don't talk about constructors in one place, about virtual functions in another, about inheritance in a third, etc. Instead, each discussion in the book is tailored to the guideline it accompanies, and my coverage of the various aspects of a particular language feature may be dispersed throughout the book.

The advantage of this approach is that it better reflects the complexity of the software systems for which C++ is often chosen, systems in which understanding individual language features is not enough. For example, experienced C++ developers know that understanding inline functions and understanding virtual destructors does not necessarily mean you understand inline virtual destructors. Such battle-scarred developers recognize that comprehending the interactions between the features in C++ is of the greatest possible importance in using the language effectively. The organization of this book reflects that fundamental truth.

(HTML tags aren't allowed.)

Microsoft Windows Vista On Demand (2nd Edition)
Microsoft Windows Vista On Demand (2nd Edition)
FOR THOSE WHO WOULD RATHER BE SHOWN HOW THAN TOLD HOW SEE HOW TO

• Master the Windows Vista user experience, including Windows Aero
• Manage files and information using Windows Vista programs and Sidebar gadgets
• Create your own movies, slides shows, and DVDs
• Rip, manage, and play digital music and
...
Object-Oriented ActionScript 3.0
Object-Oriented ActionScript 3.0
Object-oriented programming (OOP) is something that is usually considered a black art for hardcore programmers, not a topic of conversation for Flash developers. However, when adobe introduced actionscript 3.0 to the mix, it changed everything. actionscript 3.0 is much more powerful than previous versions, allowing Flash developers to produce...
Test and Analysis of Web Services
Test and Analysis of Web Services
The service-oriented approach has become more and more popular, now allowing highly integrated and yet heterogeneous applications. Web services are the natural evolution of conventional middleware technologies to support Web-based and enterprise-level integration.

The highly dynamic characteristics of service-oriented applications means...


Software Requirement Patterns (Best Practices)
Software Requirement Patterns (Best Practices)
Learn proven, real-world techniques for specifying software requirements with this practical reference. It details 30 requirement "patterns" offering realistic examples for situation-specific guidance for building effective software requirements. Each pattern explains what a requirement needs to convey, offers potential questions to...
Neuroplasticity, Development, and Steroid Hormone Action
Neuroplasticity, Development, and Steroid Hormone Action

Neuroplasticity, Development, and Steroid Hormone Action explores the effects of steroid hormones on brain development, function, and aging and is a compilation of cutting-edge research of concern to the disciplines of neurobiology, neuroendocrinology, endocrinology, and developmental biology. The experimental approaches covered range from...

Extracellular Nucleotides and Nucleosides: Release, Receptors, and Physiological & Pathophysiological Effects, Volume 54 (Current Topics in Membranes)
Extracellular Nucleotides and Nucleosides: Release, Receptors, and Physiological & Pathophysiological Effects, Volume 54 (Current Topics in Membranes)

Purinergic receptors are proteins that bind ATP as their extracellular ligand. Once thought only as an intracellular molecule that provides energy, ATP is also now considered an essential autocrine/paracrine agonist that acts extracellularly within tissues and tissue microenvironments. Receptors for ATP and its metabolites, so-called...

©2021 LearnIT (support@pdfchm.net) - Privacy Policy