I l@ve RuBoard Previous Section Next Section

   
•  Table of Contents
•  Index
•  Reviews
•  Examples
•  Reader Reviews
•  Errata
Practical C++ Programming
By Steve Oualline
   
Publisher : O'Reilly
Pub Date : December 2002
ISBN : 0-596-00419-2
Pages : 574


    Copyright
    Preface
      Scope of This Handbook
      How This Book Is Organized
      How to Read This Book If You Already Know C
      Font Conventions
      How to Contact Us
      Acknowledgments for the First Edition
      Acknowledgments for the Second Edition
   
    Part I:  The Basics
      Chapter 1.  What Is C++?
      Section 1.1.  A Brief History of C++
      Section 1.2.  C++ Organization
      Section 1.3.  How to Learn C++
   
      Chapter 2.  The Basics of Program Writing
      Section 2.1.  Programs from Conception to Execution
      Section 2.2.  Creating a Real Program
      Section 2.3.  Getting Help in Unix
      Section 2.4.  Getting Help in an IDE
      Section 2.5.  Programming Exercises
   
      Chapter 3.  Style
      Section 3.1.  Comments
      Section 3.2.  C++ Code
      Section 3.3.  Naming Style
      Section 3.4.  Coding Religion
      Section 3.5.  Indentation and Code Format
      Section 3.6.  Clarity
      Section 3.7.  Simplicity
      Section 3.8.  Consistency and Organization
      Section 3.9.  Further Reading
      Section 3.10.  Summary
   
      Chapter 4.  Basic Declarations and Expressions
      Section 4.1.  Basic Program Structure
      Section 4.2.  Simple Expressions
      Section 4.3.  The std::cout Output Object
      Section 4.4.  Variables and Storage
      Section 4.5.  Variable Declarations
      Section 4.6.  Integers
      Section 4.7.  Assignment Statements
      Section 4.8.  Floating-Point Numbers
      Section 4.9.  Floating-Point Divide Versus Integer Divide
      Section 4.10.  Characters
      Section 4.11.  Wide Characters
      Section 4.12.  Boolean Type
      Section 4.13.  Programming Exercises
      Section 4.14.  Answers to Chapter Questions
   
      Chapter 5.  Arrays, Qualifiers, and Reading Numbers
      Section 5.1.  Arrays
      Section 5.2.  Strings
      Section 5.3.  Reading Data
      Section 5.4.  Initializing Variables
      Section 5.5.  Multidimensional Arrays
      Section 5.6.  C-Style Strings
      Section 5.7.  Types of Integers
      Section 5.8.  Types of Floats
      Section 5.9.  Constant and Reference Declarations
      Section 5.10.  Qualifiers
      Section 5.11.  Hexadecimal and Octal Constants
      Section 5.12.  Operators for Performing Shortcuts
      Section 5.13.  Side Effects
      Section 5.14.  Programming Exercises
      Section 5.15.  Answers to Chapter Questions
   
      Chapter 6.  Decision and Control Statements
      Section 6.1.  if Statement
      Section 6.2.  else Statement
      Section 6.3.  How Not to Use std::strcmp
      Section 6.4.  Looping Statements
      Section 6.5.  while Statement
      Section 6.6.  break Statement
      Section 6.7.  continue Statement
      Section 6.8.  The Assignment Anywhere Side Effect
      Section 6.9.  Programming Exercises
      Section 6.10.  Answers to Chapter Questions
   
      Chapter 7.  The Programming Process
      Section 7.1.  Setting Up Your Work Area
      Section 7.2.  The Specification
      Section 7.3.  Code Design
      Section 7.4.  The Prototype
      Section 7.5.  The Makefile
      Section 7.6.  Testing
      Section 7.7.  Debugging
      Section 7.8.  Maintenance
      Section 7.9.  Revisions
      Section 7.10.  Electronic Archaeology
      Section 7.11.  Mark Up the Program
      Section 7.12.  Use the Debugger
      Section 7.13.  Use the Text Editor as a Browser
      Section 7.14.  Add Comments
      Section 7.15.  Programming Exercises
   
   
    Part II:  Simple Programming
      Chapter 8.  More Control Statements
      Section 8.1.  for Statement
      Section 8.2.  switch Statement
      Section 8.3.  switch, break, and continue
      Section 8.4.  Programming Exercises
      Section 8.5.  Answers to Chapter Questions
   
      Chapter 9.  Variable Scope and Functions
      Section 9.1.  Scope and Storage Class
      Section 9.2.  Namespaces
      Section 9.3.  Functions
      Section 9.4.  Summary of Parameter Types
      Section 9.5.  Recursion
      Section 9.6.  Structured Programming Basics
      Section 9.7.  Real-World Programming
      Section 9.8.  Programming Exercises
      Section 9.9.  Answers to Chapter Questions
   
      Chapter 10.  The C++ Preprocessor
      Section 10.1.  #define Statement
      Section 10.2.  Conditional Compilation
      Section 10.3.  #include Files
      Section 10.4.  Parameterized Macros
      Section 10.5.  Advanced Features
      Section 10.6.  Summary
      Section 10.7.  Programming Exercises
      Section 10.8.  Answers to Chapter Questions
   
      Chapter 11.  Bit Operations
      Section 11.1.  Bit Operators
      Section 11.2.  The AND Operator (&)
      Section 11.3.  Bitwise OR (|)
      Section 11.4.  The Bitwise Exclusive OR (^)
      Section 11.5.  The Ones Complement Operator (NOT) (~)
      Section 11.6.  The Left and Right Shift Operators (<<, >>)
      Section 11.7.  Setting, Clearing, and Testing Bits
      Section 11.8.  Bitmapped Graphics
      Section 11.9.  Programming Exercises
      Section 11.10.  Answers to Chapter Questions
   
   
    Part III:  Advanced Types and Classes
      Chapter 12.  Advanced Types
      Section 12.1.  Structures
      Section 12.2.  Unions
      Section 12.3.  typedef
      Section 12.4.  enum Type
      Section 12.5.  Bit Members or Packed Structures
      Section 12.6.  Arrays of Structures
      Section 12.7.  Programming Exercises
      Section 12.8.  Answers to Chapter Questions
   
      Chapter 13.  Simple Classes
      Section 13.1.  Stacks
      Section 13.2.  Improved Stack
      Section 13.3.  Using a Class
      Section 13.4.  Introduction to Constructors and Destructors
      Section 13.5.  Automatically Generated Member Functions
      Section 13.6.  Shortcuts
      Section 13.7.  Style
      Section 13.8.  Structures Versus Classes
      Section 13.9.  Programming Exercises
   
      Chapter 14.  More on Classes
      Section 14.1.  Friends
      Section 14.2.  Constant Functions
      Section 14.3.  Constant Members
      Section 14.4.  Static Member Variables
      Section 14.5.  Static Member Functions
      Section 14.6.  The Meaning of static
      Section 14.7.  Programming Exercises
   
      Chapter 15.  Simple Pointers
      Section 15.1.  const Pointers
      Section 15.2.  Pointers and Printing
      Section 15.3.  Pointers and Arrays
      Section 15.4.  The reinterpret_cast
      Section 15.5.  Pointers and Structures
      Section 15.6.  Command-Line Arguments
      Section 15.7.  Programming Exercises
      Section 15.8.  Answers to Chapter Questions
   
   
    Part IV:  Advanced Programming Concepts
      Chapter 16.  File Input/Output
      Section 16.1.  C++ File I/O
      Section 16.2.  Conversion Routines
      Section 16.3.  Binary and ASCII Files
      Section 16.4.  The End-of-Line Puzzle
      Section 16.5.  Binary I/O
      Section 16.6.  Buffering Problems
      Section 16.7.  Unbuffered I/O
      Section 16.8.  Designing File Formats
      Section 16.9.  C-Style I/O Routines
      Section 16.10.  C-Style Conversion Routines
      Section 16.11.  C-Style Binary I/O
      Section 16.12.  C- Versus C++- Style I/O
      Section 16.13.  Programming Exercises
      Section 16.14.  Answers to Chapter Questions
   
      Chapter 17.  Debugging and Optimization
      Section 17.1.  Code Reviews
      Section 17.2.  Serial Debugging
      Section 17.3.  Going Through the Output
      Section 17.4.  Interactive Debuggers
      Section 17.5.  Debugging a Binary Search
      Section 17.6.  Interactive Debugging Tips and Tricks
      Section 17.7.  Runtime Errors
      Section 17.8.  Optimization
      Section 17.9.  How to Optimize
      Section 17.10.  Case Study: Inline Functions Versus Normal Functions
      Section 17.11.  Case Study: Optimizing a Color-Rendering Algorithm
      Section 17.12.  Programming Exercises
      Section 17.13.  Answers to Chapter Questions
   
      Chapter 18.  Operator Overloading
      Section 18.1.  Creating a Simple Fixed-Point Class
      Section 18.2.  Operator Functions
      Section 18.3.  Operator Member Functions
      Section 18.4.  Warts
      Section 18.5.  Full Definition of the Fixed-Point Class
      Section 18.6.  Programming Exercises
      Section 18.7.  Answers to Chapter Questions
   
      Chapter 19.  Floating Point
      Section 19.1.  Floating-Point Format
      Section 19.2.  Floating Addition/Subtraction
      Section 19.3.  Multiplication and Division
      Section 19.4.  Overflow and Underflow
      Section 19.5.  Roundoff Error
      Section 19.6.  Accuracy
      Section 19.7.  Minimizing Roundoff Error
      Section 19.8.  Determining Accuracy
      Section 19.9.  Precision and Speed
      Section 19.10.  Power Series
      Section 19.11.  Programming Exercises
   
      Chapter 20.  Advanced Pointers
      Section 20.1.  Pointers, Structures, and Classes
      Section 20.2.  delete Operator
      Section 20.3.  Linked Lists
      Section 20.4.  Ordered Linked Lists
      Section 20.5.  Doubly Linked Lists
      Section 20.6.  Trees
      Section 20.7.  Printing a Tree
      Section 20.8.  The Rest of the Program
      Section 20.9.  Data Structures for a Chess Program
      Section 20.10.  Programming Exercises
      Section 20.11.  Answers to Chapter Questions
   
      Chapter 21.  Advanced Classes
      Section 21.1.  Derived Classes
      Section 21.2.  Virtual Functions
      Section 21.3.  Virtual Classes
      Section 21.4.  Function Hiding in Derived Classes
      Section 21.5.  Constructors and Destructors in Derived Classes
      Section 21.6.  The dynamic_cast Operator
      Section 21.7.  Summary
      Section 21.8.  Programming Exercises
      Section 21.9.  Answers to Chapter Questions
   
   
    Part V:  Other Language Features
      Chapter 22.  Exceptions
      Section 22.1.  Adding Exceptions to the Stack Class
      Section 22.2.  Exceptions Versus assert
      Section 22.3.  Programming Exercises
   
      Chapter 23.  Modular Programming
      Section 23.1.  Modules
      Section 23.2.  Public and Private
      Section 23.3.  The extern Storage Class
      Section 23.4.  Headers
      Section 23.5.  The Body of the Module
      Section 23.6.  A Program to Use Infinite Arrays
      Section 23.7.  The Makefile for Multiple Files
      Section 23.8.  Using the Infinite Array
      Section 23.9.  Dividing a Task into Modules
      Section 23.10.  Module Design Guidelines
      Section 23.11.  Programming Exercises
   
      Chapter 24.  Templates
      Section 24.1.  What Is a Template?
      Section 24.2.  Templates: The Hard Way
      Section 24.3.  Templates: The C++ Way
      Section 24.4.  Function Specialization
      Section 24.5.  Class Templates
      Section 24.6.  Class Specialization
      Section 24.7.  Implementation Details
      Section 24.8.  Advanced Features
      Section 24.9.  Summary
      Section 24.10.  Programming Exercises
   
      Chapter 25.  Standard Template Library
      Section 25.1.  STL Basics
      Section 25.2.  Class List—A Set of Students
      Section 25.3.  Creating a Waiting List with the STL List
      Section 25.4.  Storing Grades in a STL Map
      Section 25.5.  Putting It All Together
      Section 25.6.  Practical Considerations When Using the STL
      Section 25.7.  Getting More Information
      Section 25.8.  Exercises
   
      Chapter 26.  Program Design
      Section 26.1.  Design Goals
      Section 26.2.  Design Factors
      Section 26.3.  Design Principles
      Section 26.4.  Coding
      Section 26.5.  Objects
      Section 26.6.  Real-World Design Techniques
      Section 26.7.  Conclusion
   
      Chapter 27.  Putting It All Together
      Section 27.1.  Requirements
      Section 27.2.  Code Design
      Section 27.3.  Coding
      Section 27.4.  Functional Description
      Section 27.5.  Testing
      Section 27.6.  Revisions
      Section 27.7.  A Final Warning
      Section 27.8.  Program Files
      Section 27.9.  Programming Exercises
   
      Chapter 28.  From C to C++
      Section 28.1.  K&R-Style Functions
      Section 28.2.  struct
      Section 28.3.  malloc and free
      Section 28.4.  Turning Structures into Classes
      Section 28.5.  setjmp and longjmp
      Section 28.6.  Mixing C and C++ Code
      Section 28.7.  Summary
      Section 28.8.  Programming Exercise
   
      Chapter 29.  C++'s Dustier Corners
      Section 29.1.  do/while
      Section 29.2.  goto
      Section 29.3.  The ?: Construct
      Section 29.4.  The Comma Operator
      Section 29.5.  Overloading the ( ) Operator
      Section 29.6.  Pointers to Members
      Section 29.7.  The asm Statement
      Section 29.8.  The mutable Qualifier
      Section 29.9.  Run Time Type Identification
      Section 29.10.  Trigraphs
      Section 29.11.  Answers to Chapter Questions
   
      Chapter 30.  Programming Adages
      Section 30.1.  General
      Section 30.2.  Design
      Section 30.3.  Declarations
      Section 30.4.  switch Statement
      Section 30.5.  Preprocessor
      Section 30.6.  Style
      Section 30.7.  Compiling
      Section 30.8.  The Ten Commandments for C++ Programmers
      Section 30.9.  Final Note
      Section 30.10.  Answers to Chapter Questions
   
   
    Part VI:  Appendixes
      Appendix A.  ASCII Table
      Appendix B.  Ranges
      Appendix C.  Operator Precedence Rules
      Section C.1.  Standard Rules
      Section C.2.  Practical Subset of the Operator Precedence Rules
   
      Appendix D.  Computing Sine Using a Power Series
      Appendix E.  Resources
      Section E.1.  Compilers
      Section E.2.  Standard Template Library
      Section E.3.  Standards
      Section E.4.  Programming Tools
   
   
    Colophon
    Index
I l@ve RuBoard Previous Section Next Section