內容簡介
本書是一本C++編程方面的優秀教材,全面介紹了面向對象編程的原理和方法,詳細分析了與C++編程有關的技術,具體包括類與對象、控制語句、函式與遞歸、數組、指針、運算符重載、繼承、多態、模板、流輸入/輸出、異常處理、檔案處理、搜尋與排序、數據結構、標準模板庫等內容,本書的同步學習網站上還包含了更多的擴展內容。全書以“活代碼”方式詳細分析了每個知識要點,是初學者和中高級程式設計師學習C++編程的理想用書。
圖書目錄
Contents
Chapter 1 Introduction to Computers and C++
1.1 Introduction
1.2 Computers: Hardware and Software
1.3 Data Hierarchy
1.4 Computer Organization
1.5 Machine Languages,Assembly Languages and High-Level Languages
1.6 Introduction to Object Technology
1.7 Operating Systems
1.8 Programming Languages
1.9 C++ and a Typical C++ Development Environment
1.10 Test-Driving a C++ Application
1.11 Web 2.0: Going Social
1.12 Software Technologies
1.13 Future of C++: TR1,the New C++ Standard and the Open Source Boost Libraries
1.14 Keeping Up-to-Date with Information Technologies
1.15 Wrap-Up
Chapter 2 Introduction to C++ Programming
2.1 Introduction
2.2 First Program in C++: Printing a Line of Text
2.3 Modifying Our First C++ Program
2.4 Another C++ Program: Adding Integers
2.5 Memory Concepts
2.6 Arithmetic
2.7 Decision Making: Equality and Relational Operators
2.8 Wrap-Up
Chapter 3 Introduction to Classes,Objects and Strings
3.1 Introduction
3.2 Defining a Class with a Member Function
3.3 Defining a Member Function with a Parameter
3.4 Data Members,set Functions and get Functions
3.5 Initializing Objects with Constructors
3.6 Placing a Class in a Separate File for Reusability
3.7 Separating Interface from Implementation
3.8 Validating Data with set Functions
3.9 Wrap-Up
Chapter 4 Control Statements: Part 1
4.1 Introduction
4.2 Algorithms
4.3 Pseudocode
4.4 Control Structures
4.5 if Selection Statement
4.6 if…else Double-Selection Statement
4.7 while Repetition Statement
4.8 Formulating Algorithms: Counter-Controlled Repetition
4.9 Formulating Algorithms: Sentinel-Controlled Repetition
4.10 Formulating Algorithms: Nested Control Statements
4.11 Assignment Operators
4.12 Increment and Decrement Operators
4.13 Wrap-Up
Chapter 5 Control Statements: Part 2
5.1 Introduction
5.2 Essentials of Counter-Controlled Repetition
5.3 for Repetition Statement
5.4 Examples Using the for Statement
5.5 do…while Repetition Statement
5.6 switch Multiple-Selection Statement
5.7 break and continue Statements
5.8 Logical Operators
5.9 Confusing the Equality (==) and Assignment (=) Operators
5.10 Structured Programming Summary
5.11 Wrap-Up
Chapter 6 Functions and an Introduction to Recursion
6.1 Introduction
6.2 Program Components in C++
6.3 Math Library Functions
6.4 Function Definitions with Multiple Parameters
6.5 Function Prototypes and Argument Coercion
6.6 C++ Standard Library Headers
6.7 Case Study: Random Number Generation
6.8 Case Study: Game of Chance; Introducing enum
6.9 Storage Classes
6.10 Scope Rules
6.11 Function Call Stack and Activation Records
6.12 Functions with Empty Parameter Lists
6.13 Inline Functions
6.14 References and Reference Parameters
6.15 Default Arguments
6.16 Unary Scope Resolution Operator
6.17 Function Overloading
6.18 Function Templates
6.19 Recursion
6.20 Example Using Recursion: Fibonacci Series
6.21 Recursion vs. Iteration
6.22 Wrap-Up
Chapter 7 Arrays and Vectors
7.1 Introduction
7.2 Arrays
7.3 Declaring Arrays
7.4 Examples Using Arrays
7.5 Passing Arrays to Functions
7.6 Case Study: Class GradeBook Using an Array to Store Grades
7.7 Searching Arrays with Linear Search
7.8 Sorting Arrays with Insertion Sort
7.9 Multidimensional Arrays
7.10 Case Study: Class GradeBook Using a Two-Dimensional Array
7.11Introduction to C++ Standard Library Class Template vector
7.12 Wrap-Up
Chapter 8 Pointers
8.1 Introduction
8.2 Pointer Variable Declarations and Initialization
8.3 Pointer Operators
8.4 Pass-by-Reference with Pointers
8.5 Using const with Pointers
8.6 Selection Sort Using Pass-by-Reference
8.7 sizeof Operator
8.8 Pointer Expressions and Pointer Arithmetic
8.9 Relationship Between Pointers and Arrays
8.10 Pointer-Based String Processing
8.11 Arrays of Pointers
8.12 Function Pointers
8.13 Wrap-Up
Chapter 9 Classes: A Deeper Look, Part 1
9.1 Introduction
9.2 Time Class Case Study
9.3 Class Scope and Accessing Class Members
9.4 Separating Interface from Implementation
9.5 Access Functions and Utility Functions
9.6 Time Class Case Study: Constructors with Default Arguments
9.7 Destructors
9.8 When Constructors and Destructors Are Called
9.9 Time Class Case Study: A Subtle Trap—Returning a Reference to a private Data Member
9.10 Default Memberwise Assignment
9.11 Wrap-Up
Chapter 10 Classes: A Deeper Look, Part 2
10.1 Introduction
10.2 const (Constant) Objects and const Member Functions
10.3 Composition: Objects as Members of Classes
10.4 friend Functions and friend Classes
10.5 Using the this Pointer
10.6 static Class Members
10.7 Proxy Classes
10.8 Wrap-Up
Chapter 11 Operator Overloading; Class string
11.1 Introduction
11.2 Using the Overloaded Operators of Standard Library Class string
11.3 Fundamentals of Operator Overloading
11.4 Overloading Binary Operators
11.5 Overloading the Binary Stream Insertion and Stream Extraction Operators
11.6 Overloading Unary Operators
11.7 Overloading the Unary Prefix and Postfix ++ and --Operators
11.8 Case Study: A Date Class
11.9 Dynamic Memory Management
11.10 Case Study: Array Class
11.11 Operators as Member Functions vs. Non-Member Functions
11.12 Converting between Types
11.13 explicit Constructors
11.14 Building a String Class
11.15 Wrap-Up
Chapter 12 Object-Oriented Programming: Inheritance
12.1 Introduction
12.2 Base Classes and Derived Classes
12.3 protected Members
12.4 Relationship between Base Classes and Derived Classes
12.5 Constructors and Destructors in Derived Classes
12.6 public,protected and private Inheritance
12.7 Software Engineering with Inheritance
12.8 Wrap-Up
Chapter 13 Object-Oriented Programming: Polymorphism
13.1 Introduction
13.2 Introduction to Polymorphism: Polymorphic Video Game
13.3 Relationships Among Objects in an Inheritance Hierarchy
13.4 Type Fields and switch Statements
13.5 Abstract Classes and Pure virtual Functions
13.6 Case Study: Payroll System Using Polymorphism
13.7 (Optional)Polymorphism,Virtual Functions and Dynamic Binding“Under the Hood”
13.8 Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting,dynamic_cast,typeid and type_info
13.9 Virtual Destructors
13.10 Wrap-Up
Chapter 14 Templates
14.1 Introduction
14.2 Function Templates
14.3 Overloading Function Templates
14.4 Class Templates
14.5 Nontype Parameters and Default Types for Class Templates
14.6 Wrap-Up
Chapter 15 Stream Input/Output
15.1 Introduction
15.2 Streams
15.3 Stream Output
15.4 Stream Input
15.5 Unformatted I/O Using read,write and gcount
15.6 Introduction to Stream Manipulators
15.7 Stream Format States and Stream Manipulators
15.8 Stream Error States
15.9 Tying an Output Stream to an Input Stream
15.10 Wrap-Up
Chapter 16 Exception Handling: A Deeper Look
16.1 Introduction
16.2 Example: Handling an Attempt to Divide by Zero
16.3 When to Use Exception Handling
16.4 Rethrowing an Exception
16.5 Exception Specifications
16.6 Processing Unexpected Exceptions
16.7 Stack Unwinding
16.8 Constructors, Destructors and Exception Handling
16.9 Exceptions and Inheritance
16.10 Processing new Failures
16.11 Class unique_ptr and Dynamic Memory Allocation
16.12 Standard Library Exception Hierarchy
16.13 Wrap-Up
Chapter 17 File Processing
17.1 Introduction
17.2 Files and Streams
17.3 Creating a Sequential File
17.4 Reading Data from a Sequential File
17.5 Updating Sequential Files
17.6 Random-Access Files
17.7 Creating a Random-Access File
17.8 Writing Data Randomly to a Random-Access File
17.9 Reading from a Random-Access File Sequentially
17.10 Case Study: A Transaction-Processing Program
17.11 Object Serialization
17.12 Wrap-Up
Chapter 18 Class string and String Stream Processing
18.1 Introduction
18.2 string Assignment and Concatenation
18.3 Comparing strings
18.4 Substrings
18.5 Swapping strings
18.6 string Characteristics
18.7 Finding Substrings and Characters in a string
18.8 Replacing Characters in a string
18.9 Inserting Characters into a string
18.10 Conversion to C-Style Pointer-Based char * Strings
18.11 Iterators
18.12 String Stream Processing
18.13 Wrap-Up
Chapter 19 Searching and Sorting
19.1 Introduction
19.2 Searching Algorithms
19.3 Sorting Algorithms
19.4 Wrap-Up
Chapter 20 Custom Templatized Data Structures
20.1 Introduction
20.2 Self-Referential Classes
20.3 Dynamic Memory Allocation and Data Structures
20.4 Linked Lists
20.5 Stacks
20.6 Queues
20.7 Trees
20.8 Wrap-Up
Chapter 21 Bits, Characters, C Strings and structs
21.1 Introduction
21.2 Structure Definitions
21.3 typedef
21.4 Example: Card Shuffling and Dealing Simulation
21.5 Bitwise Operators
21.6 Bit Field
21.7 Character-Handling Library
21.8 Pointer-Based String Manipulation Functions
21.9 Pointer-Based String-Conversion Functions
21.10 Search Functions of the Pointer-Based StringHandling Library
21.11 Memory Functions of the Pointer-Based StringHandling Library
21.12 Wrap-Up
Chapter 22 Standard Template Library(STL)
22.1 Introduction to the Standard Template Library (STL)
22.2 Introduction to Containers
22.3 Introduction to Iterators
22.4 Introduction to Algorithms
22.5 Sequence Containers
22.6 Associative Containers
22.7 Container Adapters
22.8 Algorithms
22.9 Class bitset
22.10 Function Objects
22.11 Wrap-Up
Chapter 23
Boost Libraries, Technical Report 1 and C++0x
23.1 Introduction
23.2 Deitel Online C++ and Related Resource Centers
23.3 Boost Libraries
23.4 Boost Libraries Overview
23.5 Regular Expressions with the regex Library
23.6 Smart Pointers
23.7 Technical Report 1
23.8 C++0x
23.9 Core Language Changes
23.10 Wrap-Up
Chapter 24 Other Topics
24.1 Introduction
24.2 const_cast Operator
24.3 mutable Class Members
24.4 namespaces
24.5 Operator Keywords
24.6 Pointers to Class Members (.* and ->*)
24.7 Multiple Inheritance
24.8 Multiple Inheritance and virtual Base Classes
24.9 Wrap-Up
ppendix A Operator Precedence and Associativity
Appendix B ASCII Character Set
Appendix C Fundamental Types
Appendix D Number Systems
Appendix E PreprocessorIndex