This is a complete introduction to the C++ language for both the beginning programmer and C programmers transitioning to C++. It explains how to debug, how to make your code comprehensible to others, and how to understand other people's code.
Fast becoming the standard language of commercial software development, C++ is an update of the C programming language, adding object-oriented features that are very helpful for today's larger graphical applications. Practical C++ Programming is a complete introduction to the C++ language for the beginning programmer, and also for C programmers transitioning to C++. Unlike most other C++ books, this book emphasizes a practical, real-world approach, including how to debug, how to make your code understandable to others, and how to understand other people's code. Almost as important, this book is written in the readable style that has made Nutshell Handbooks(R) famous. Topics covered include: Good programming style C++ syntax, what to use and what not to use C++ class design Debugging and optimization Common programming mistakes At the end of each chapter are a number of exercises you can use to make sure you've grasped the concepts. Solutions to most are provided. Practical C++ Programming describes standard C++ features that are supported by all UNIX C++ compilers (including gcc) and DOS/Windows and NT compilers (including Microsoft Visual C++). Comparison: Practical C++ Programming vs. C++: The Core Language O'Reilly's policy is not to publish two books on the same topic for the same audience. We'd rather spend twice the time on making one book the industry's best. So why do we have two C++ tutorials? Which one should you get? The answer is they're very different. Steve Oualline, author of the successful book Practical C Programming, came to us with the idea of doing a C++ edition. Thus was born Practical C++ Programming. It's a comprehensive tutorial to C++, starting from the ground up. It also covers the programming process, style, and other important real-world issues. By providing exercises and problems with answers, the book helps you make sure you understand before you move on. While that book was under development, we received the proposal for C++: The Core Language. Its innovative approach is to cover only a subset of the language -- the part that's most important to learn first -- and to assume readers already know C. The idea is that C++ is just too complicated to learn all at once. Instead, you learn the basics solidly from this short book, which prepares you to start programming and to understand some of the other C++ books you'll need for reference. These two books are based on different philosophies and are for different audiences. But there is one way in which they work together. If you are a C programmer, we recommend you start with C++: The Core Language, then read about advanced topics and real-world problems in Practical C++ Programming.
Steve Oualline wrote his first program when he was 11. It had a bug in it. Since that time he has studied practical ways of writing programs so that the risk of generating a bug is reduced. He has worked for Motorola and Celerity Computing, and is currently a special consultant for Hewlett Packard, working in the research department of their Ink-Jet division.
Table of Contents
Preface Part I: The Basics Chapter 1: What Is C++? A Brief History of C++ C++ Organization How to Learn C++ Chapter 2: The Basics of Program Writing Programs from Conception to Execution Creating a Real Program Creating a Program Using a Command-Line Compiler Creating a Program Using an Integrated Development Environment Getting Help in UNIX Getting Help in an Integrated Development Environment Programming Exercises Chapter 3: Style Comments C++ Code Naming Style Coding Religion Indentation and Code Format Clarity Simplicity Consistency and Organization Further Reading Summary Chapter 4: Basic Declarations and Expressions The Elements of a Program Basic Program Structure Simple Expressions The cout Output Class Variables and Storage Variable Declarations Integers Assignment Statements Floating Point Numbers Floating Point Versus Integer Divide Characters Programming Exercises Answers to Chapter Questions Chapter 5: Arrays, Qualifiers, and Reading Numbers Arrays Strings Reading Data Initializing Variables Multidimensional Arrays Types of Integers Types of Floats Constant and Reference Declarations Qualifiers Hexadecimal and Octal Constants Operators for Performing Shortcuts Side Effects Programming Exercises Answers to Chapter Questions Chapter 6: Decision and Control Statements if Statement else Statement How Not to Use strcmp Looping Statements while Statement Break Statement continue Statement The Assignment Anywhere Side Effect Programming Exercises Answers to Chapter Questions Chapter 7: The Programming Process Setting Up The Specification Code Design The Prototype The Makefile Testing Debugging Maintenance Revisions Electronic Archaeology Mark Up the Program Use the Debugger Use the Text Editor as a Browser Add Comments Programming Exercises Part II: Simple Programming Chapter 8: More Control Statements for Statement switch Statement switch, break, and continue Programming Exercises Answers to Chapter Questions Chapter 9: Variable Scope and Functions Scope and Storage Class Functions Summary of Parameter Types Structured Programming Basics Recursion Programming Exercises Answers to Chapter Questions Chapter 10: The C++ Preprocessor define statement Conditional Compilation include Files Parameterized Macros Advanced Features Summary Programming Exercises Answers to Chapter Questions Chapter 11: Bit Operations Bit Operators The AND Operator (&) Bitwise OR (|) The Bitwise Exclusive OR (^) The Ones Complement Operator (NOT) (~) The Left and Right Shift Operators (<<, >>) Setting, Clearing, and Testing Bits Bitmapped Graphics Programming Exercises Answers to Chapter Questions Part III: Advanced Types and Classes Chapter 12: Advanced Types Structures Unions typedef enum Type Bit Fields or Packed Structures Arrays of Structures Programming Exercises Chapter 13: Simple Classes Stacks Improved Stack Using a Class Introduction to Constructors and Destructors Automatically Generated Member Functions Shortcuts Style Programming Exercises Chapter 14: More on Classes Friends Constant Functions Constant Members Static Member Variables Static Member Functions The Meaning of static Programming Exercises Chapter 15: Simple Pointers Constant Pointers Pointers and Printing Pointers and Arrays Splitting Strings Pointers and Structures Command-Line Arguments Programming Exercises Answers to Chapter Questions Part IV: Advanced Programming Concepts Chapter 16: File Input/Output C++ File I/O Conversion Routines Binary and ASCII Files The End-of-Line Puzzle Binary I/O Buffering Problems Unbuffered I/O Designing File Formats C-Style I/O Routines C-Style Conversion Routines C-Style Binary I/O Programming Exercises Answers to Chapter Questions Chapter 17: Debugging and Optimization Debugging Serial Debugging Divide and Conquer Debug-Only Code Debug Command-Line Switch Going Through the Output Interactive Debuggers Debugging a Binary Search Runtime Errors The Confessional Method of Debugging Optimization The Power of Powers of 2 How to Optimize Case Study: Inline Functions Versus Normal Functions Case Study: Optimizing a Color-Rendering Algorithm Programming Exercises Answers to Chapter Questions Chapter 18: Operator Overloading Operator Functions Operator Member Functions Full Definition of the Complex Class Programming Exercises Answers to Chapter Questions Chapter 19: Floating Point Floating-Point Format Floating Addition/Subtraction Multiplication Division Overflow and Underflow Roundoff Error Accuracy Minimizing Roundoff Error Determining Accuracy Precision and Speed Power Series Programming Exercises Chapter 20: Advanced Pointers Pointers, Structures, and Classes delete Operator Linked List Ordered Linked Lists Double-linked List Trees Printing a Tree The Rest of the Program Data Structures for a Chess Program Programming Exercises Answers to Chapter Questions Chapter 21: Advanced Classes Derived Classes Virtual Functions Virtual Classes Function Hiding in Derived Classes Constructors and Destructors in Derived Classes Summary Programming Exercises Answers to Chapter Questions Part V: Other Language Features Chapter 22: Exceptions Stack Exceptions Runtime Library Exceptions Programming Exercises Chapter 23: Modular Programming Modules Public and Private The extern Modifier Headers The Body of the Module A Program to Use Infinite Arrays The Makefile for Multiple Files Using the Infinite Array Dividing a Task into Modules Module Division Example: Text Editor Compiler Construction Spreadsheet Module Design Guidelines Programming Exercises Chapter 24: Templates What Is a Template? Templates: The Hard Way Function Specialization Class Templates Class Specialization Implementation Difficulties Summary Programming Exercises Chapter 25: Portability Problems Modularity Word Size Byte-Order Problem Alignment Problem NULL-Pointer Problem Filename Problems File Types Summary Answers to Chapter Questions Chapter 26: Putting It All Together Requirements Code Design Coding Functional Description Testing Revisions A Final Warning Program Files Programming Exercises Chapter 27: From C to C++ Overview K&R-Style Functions struct malloc and free Turning Structures into Classes ssetjmp and longjmp Summary Programming Exercise Chapter 28: C++'s Dustier Corners do/while goto The ?: Construct The Comma Operator Overloading the ( ) Operator Pointers to Members Vampire Features Answers to Chapter Questions Chapter 29: Programming Adages General Design Declarations switch Statement Preprocessor Style Compiling The Ten Commandments for C++ Programmers Final Note Answers to Chapter Questions Part VI: Appendixes Appendix A: ASCII Table Appendix B: Ranges Appendix C: Operator Precedence Rules Appendix D: Computing sine Using a Power Series Glossary Index
Practical C++ Programming by Steve Oualline
Used - Very Good
O'Reilly Media, Inc, USA
Book picture is for illustrative purposes only, actual binding, cover or edition may vary.
This is a used book - there is no escaping the fact it has been read by someone else and it will show signs of wear and previous use. Overall we expect it to be in very good condition, but if you are not entirely satisfied please get in touch with us.