на главную поиск contacts

Practical C++ Programming, Second Edition

Опубликовано на портале: 15-11-2006
Изд-во: O'Reilly Media, 2002, 574 с.
In short, to-the-point chapters, Practical C++ Programming covers all aspects of programming including style, software engineering, programming design, object-oriented design, and debugging. It also covers common mistakes and how to find (and avoid) them. End of chapter exercises help you ensure you've mastered the material. Steve Oualline's clear, easy-going writing style and hands-on approach to learning make Practical C++ Programming a nearly painless way to master this complex but powerful programming language.


Part I. The Basics

1. What Is C++?
     A Brief History of C++
     C++ Organization
     How to Learn C++

2. The Basics of Program Writing
     Programs from Conception to Execution
     Creating a Real Program
     Getting Help in Unix
     Getting Help in an IDE
     Programming Exercises

3. Style
     C++ Code
     Naming Style
     Coding Religion
     Indentation and Code Format
     Consistency and Organization
     Further Reading

4. Basic Declarations and Expressions
     Basic Program Structure
     Simple Expressions
     The std::cout Output Object
     Variables and Storage
     Variable Declarations
     Assignment Statements
     Floating-Point Numbers
     Floating-Point Divide Versus Integer Divide
     Wide Characters
     Boolean Type
     Programming Exercises
     Answers to Chapter Questions

5. Arrays, Qualifiers, and Reading Numbers
     Reading Data
     Initializing Variables
     Multidimensional Arrays
     C-Style Strings
     Types of Integers
     Types of Floats
     Constant and Reference Declarations
     Hexadecimal and Octal Constants
     Operators for Performing Shortcuts
     Side Effects
     Programming Exercises
     Answers to Chapter Questions

6. Decision and Control Statements
     if Statement
     else Statement
     How Not to Use std::strcmp
     Looping Statements
     while Statement
     break Statement
     continue Statement
     The Assignment Anywhere Side Effect
     Programming Exercises
     Answers to Chapter Questions

7. The Programming Process
     Setting Up Your Work Area
     The Specification
     Code Design
     The Prototype
     The Makefile
     Electronic Archaeology
     Mark Up the Program
     Use the Debugger
     Use the Text Editor as a Browser
     Add Comments
     Programming Exercises

Part II. Simple Programming

8. More Control Statements
     for Statement
     switch Statement
     switch, break, and continue
     Programming Exercises
     Answers to Chapter Questions

9. Variable Scope and Functions
     Scope and Storage Class
     Summary of Parameter Types
     Structured Programming Basics
     Real-World Programming
     Programming Exercises
     Answers to Chapter Questions

10. The C++ Preprocessor
     #define Statement
     Conditional Compilation
     #include Files
     Parameterized Macros
     Advanced Features
     Programming Exercises
     Answers to Chapter Questions

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

12. Advanced Types
     enum Type
     Bit Members or Packed Structures
     Arrays of Structures
     Programming Exercises
     Answers to Chapter Questions

13. Simple Classes
     Improved Stack
     Using a Class
     Introduction to Constructors and Destructors
     Automatically Generated Member Functions
     Structures Versus Classes
     Programming Exercises

14. More on Classes
     Constant Functions
     Constant Members
     Static Member Variables
     Static Member Functions
     The Meaning of static
     Programming Exercises

15. Simple Pointers
     const Pointers
     Pointers and Printing
     Pointers and Arrays
     The reinterpret_cast
     Pointers and Structures
     Command-Line Arguments
     Programming Exercises
     Answers to Chapter Questions

Part IV. Advanced Programming Concepts

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
     C- Versus C++- Style I/O
     Programming Exercises
     Answers to Chapter Questions

17. Debugging and Optimization
     Code Reviews
     Serial Debugging
     Going Through the Output
     Interactive Debuggers
     Debugging a Binary Search
     Interactive Debugging Tips and Tricks
     Runtime Errors
     How to Optimize
     Case Study: Inline Functions Versus Normal Functions
     Case Study: Optimizing a Color-Rendering Algorithm
     Programming Exercises
     Answers to Chapter Questions

18. Operator Overloading
     Creating a Simple Fixed-Point Class
     Operator Functions
     Operator Member Functions
     Full Definition of the Fixed-Point Class
     Programming Exercises
     Answers to Chapter Questions

19. Floating Point
     Floating-Point Format
     Floating Addition/Subtraction
     Multiplication and Division
     Overflow and Underflow
     Roundoff Error
     Minimizing Roundoff Error
     Determining Accuracy
     Precision and Speed
     Power Series
     Programming Exercises

20. Advanced Pointers
     Pointers, Structures, and Classes
     delete Operator
     Linked Lists
     Ordered Linked Lists
     Doubly Linked Lists
     Printing a Tree
     The Rest of the Program
     Data Structures for a Chess Program
     Programming Exercises
     Answers to Chapter Questions

21. Advanced Classes
     Derived Classes
     Virtual Functions
     Virtual Classes
     Function Hiding in Derived Classes
     Constructors and Destructors in Derived Classes
     The dynamic_cast Operator
     Programming Exercises
     Answers to Chapter Questions

Part V. Other Language Features

22. Exceptions
     Adding Exceptions to the Stack Class
     Exceptions Versus assert
     Programming Exercises

23. Modular Programming
     Public and Private
     The extern Storage Class
     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 Design Guidelines
     Programming Exercises

24. Templates
     What Is a Template?
     Templates: The Hard Way
     Templates: The C++ Way
     Function Specialization
     Class Templates
     Class Specialization
     Implementation Details
     Advanced Features
     Programming Exercises

25. Standard Template Library
     STL Basics
     Class List-A Set of Students
     Creating a Waiting List with the STL List
     Storing Grades in a STL Map
     Putting It All Together
     Practical Considerations When Using the STL
     Getting More Information

26. Program Design
     Design Goals
     Design Factors
     Design Principles
     Real-World Design Techniques

27. Putting It All Together
     Code Design
     Functional Description
     A Final Warning
     Program Files
     Programming Exercises

28. From C to C++
     K&R-Style Functions
     malloc and free
     Turning Structures into Classes
     setjmp and longjmp
     Mixing C and C++ Code
     Programming Exercise

29. C++'s Dustier Corners
     The ?: Construct
     The Comma Operator
     Overloading the ( ) Operator
     Pointers to Members
     The asm Statement
     The mutable Qualifier
     Run Time Type Identification
     Answers to Chapter Questions

30. Programming Adages
     switch Statement
     The Ten Commandments for C++ Programmers
     Final Note
     Answers to Chapter Questions

Part VI. Appendixes

A. ASCII Table

B. Ranges

C. Operator Precedence Rules

D. Computing Sine Using a Power Series

E. Resources


Ключевые слова

См. также:
Adam Trachtenberg, David Sklar
Jesse Liberty
Tim Patrick, John Clark Craig
Jesse Liberty
Jesse Liberty
Ray Lischner
Jeff Cogswell, Jonathan Turkanis, Christopher Diggins, Ryan Stephens