Safe C++. How to avoid common mistakes - Helion
ISBN: 978-14-493-2136-9
stron: 142, Format: ebook
Data wydania: 2012-05-30
Księgarnia: Helion
Cena książki: 29,90 zł (poprzednio: 99,67 zł)
Oszczędzasz: 70% (-69,77 zł)
It’s easy to make lots of programming mistakes in C++—in fact, any program over a few hundred lines is likely to contain bugs. With this book, you’ll learn about many common coding errors that C++ programmers produce, along with rules and strategies you can use to avoid them.
Author Vladimir Kushnir shows you how to use his Safe C++ library, based in part on programming practices developed by the C++ community. You’ll not only find recipes for identifying errors during your program’s compilation, runtime, and testing phases, you’ll learn a comprehensive approach for making your C++ code safe and bug-free.
- Get recipes for handling ten different error types, including memory leaks and uninitialized variables
- Discover problems C++ inherited from C, like pointer arithmetic
- Insert temporary and permanent sanity checks to catch errors at runtime
- Apply bug prevention techniques, such as using separate classes for each data type
- Pursue a testing strategy to hunt and fix one bug at a time—before your code goes into production
Spis treści
Safe C++. How to avoid common mistakes eBook -- spis treści
- Safe C++
- Dedication
- SPECIAL OFFER: Upgrade this ebook with OReilly
- Preface
- Audience
- How This Book Is Organized
- Conventions Used in This Book
- Naming Conventions
- Using Code Examples
- Safari Books Online
- How to Contact Us
- Acknowledgments
- I. A Bug-Hunting Strategy for C++
- 1. Where Do C++ Bugs Come From?
- 2. When to Catch a Bug
- Why the Compiler Is Your Best Place to Catch Bugs
- How to Catch Bugs in the Compiler
- The Proper Way to Handle Types
- 3. What to Do When We Encounter an Error at Runtime
- II. Bug Hunting: One Bug at a Time
- 4. Index Out of Bounds
- Dynamic Arrays
- Static Arrays
- Multidimensional Arrays
- 5. Pointer Arithmetic
- 6. Invalid Pointers, References, and Iterators
- 7. Uninitialized Variables
- Initialized Numbers (int, double, etc.)
- Uninitialized Boolean
- 8. Memory Leaks
- Reference Counting Pointers
- Scoped Pointers
- Enforcing Ownership with Smart Pointers
- 9. Dereferencing NULL Pointers
- 10. Copy Constructors and Assignment Operators
- 11. Avoid Writing Code in Destructors
- 12. How to Write Consistent Comparison Operators
- 13. Errors When Using Standard C Libraries
- 4. Index Out of Bounds
- III. The Joy of Bug Hunting: From Testing to Debugging to Production
- 14. General Testing Principles
- 15. Debug-On-Error Strategy
- 16. Making Your Code Debugger-Friendly
- 17. Conclusion
- A. Source Code for the scpp Library Used in This Book
- B. Source Code for the files scpp_assert.hpp and scpp_assert.cpp
- C. Source Code for the file scpp_vector.hpp
- D. Source Code for the file scpp_array.hpp
- E. Source Code for the file scpp_matrix.hpp
- F. Source Code for the file scpp_types.hpp
- G. Source Code for the file scpp_refcountptr.hpp
- H. Source Code for the file scpp_scopedptr.hpp
- I. Source Code for the file scpp_ptr.hpp
- J. Source Code for the file scpp_date.hpp and scpp_date.cpp
- Index
- About the Author
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OReilly
- Copyright