|
|
Table of Contents Translator's Preface Preface Chapter 1 Evolution of Objects 1 1.1 Basic Concepts 1 1.1.1 Objects: Characteristics + Behavior 1 1.1.2 Inheritance: type relations 1 1.1.3 Polymorphism 2 1.1.4 Operational concepts: what an OOP program looks like 3 1.2 Why C++ Succeeds 3 1.2.1 The Better C 3 1.2.2 Using an incremental learning approach 4 1.2.3 Operational efficiency 4 1.2.4 Systems are easier to express and understand 4 1.2.5 "Libraries" make you twice as good with half the effort 4 1.2.6 Error handling 5 1.2.7 Large program design 5 1.3 Introduction to the methodology 5 1.3.1 Complexity 5 1.3.2 Internal principles 6 1.3.3 External Principles 7 1.3.4 The Five Stages of Object Design 9 1.3.5 What Methods Promise 10 1.3.6 What Methods Should Provide 10 1.4 Drafting: The Minimalist Approach 12 1.4.1 Prerequisites 13 1.4.2 High-level concepts 14 1.4.3 Treatment 14 1.4.4 Structuring 14 1.4.5 Development 16 1.4.6 Rewriting 17 17 1.4.7 Logic 17 1.5 Other Methods 17 1.5.1 Booch 18 1.5.2 Responsibility-Driven Design (RDD) 19 1.5.3 Object Modeling Techniques (OMT) 19 1.6 Strategies Adopted for the Shift to OOP 19 1.6.1 Moving to OOP 19 1.6.2 Managing the Barriers 20 1.7 Summary 21 Chapter 2 Data Abstraction 22 2.1 Declarations and Definitions 22 2.2 A Pocket C Library 23 2.3 Putting It All Together: Project Creation Tools 29 2.4 What's Not Normal 29 2.5 Basic Objects 30 2.6 What is an Object 34 2.7 Abstract Data Types 35 2.8 Object Details 35 2.9 Header Forms 36 2.10 Nested Structures 37 2.11 Summary 41 2.12 Exercises 41 Chapter 3 Hide Implementation 42 3.1 Setting Limits 42 3.2 Access Control in C++ 42 3.3 Friends 44 3.3.1 Nested Friends 45 3.3.2 Is It Pure 48 3.4 Object Layout 48 3.5 Classes 48 3.5.1 Modifying stash with access control 50 3.5.2 Modifying stacks with access control 51 3.6 Handle classes 51 3.6.1 Visible parts of the implementation 51 3.6.2 Reducing Duplicate Compilation 52 3.7 Summary 54 3.8 Exercises 54 Chapter 4 Initialization and Clearing 55 4.1 Ensuring Initialization with Constructors 55 4.2 Ensuring Clearing with Destructors 56 4.3 Clearing Definition Blocks 58 4.3.1 For loops 59 4.3.2 Space Allocation 60 4.4 Stash with Constructors and Destructors 61 4.5 Stack with constructor and destructor 63 4.6 Collection initialization 65 4.7 Default Constructor 67 4.8 Summary 68 4.9 Exercises 68 Chapter 5 Function Overloading and Default Arguments 69 5.1 Scope Decomposition 69 5.1.1 Overloading with Return Values 70 5.1.2 Safe type concatenation 70 5.2 Examples of overloading 71 5.3 Default Arguments 74 5.4 Summary 81 5.5 Exercises 82 Chapter 6 Introduction to Input-Output Streams 83 6.1 Why Use Input-Output Streams 83 6.2 Solving Input-Output Stream Problems 86 6.2.1 A Preview of Operator Overloading 86 6.2.2 Insertion and extraction operators 87 6.2.3 Common Usage 88 6.2.4 Line-oriented input 90 6.3 File Input and Output Streams 91 6.4 Input and output stream buffering 93 6.5 Finding in an input/output stream 94 6.6 strstreams 96 6.6.1 Stores allocated for the user 96 6.6.2 Automatic storage allocation 98 6.7 Output stream formatting 100 6.7.1 Formatting data internally 101 6.7.2 Examples 102 6.8 Formatting manipulation operators 106 6.9 Building a manipulation operator 108 6.10 Input-Output Stream Example 111 6.10.1 Code Generation 111 6.10.2 A Simple Data Record 117 6.11 Summary 123 6.12 Exercises 123 Chapter 7 Constants 124 7.1 Value Substitution 124 7.1.1 Const in the header file 124 7.1.2 Security of const 125 7.1.3 Collections 126 126 7.1.4 Differences from C 126 7.2 Pointers 127 7.2.1 Pointers to const 127 127 7.2.2 Const pointers 127 7.2.3 Assignment and type checking 128 7.3 Function parameters and return values 128 7.3.1 Passing const values 128 7.3.2 Returning const values 129 7.3.3 Passing and returning addresses 131 7.4 Classes 133 7.4.1 Const and enum in classes 133 7.4.2 Constants in classes during compilation 134 7.4.3 Const objects and member functions 136 7.4.4 Read-only storage capabilities 139 7.5 Mutable (volatile) 140 7.6 Summary 141 7.7 Exercises 141 Chapter 8 Inline Functions 142 8.1 Flaws in the Preprocessor 142 8.2 Inline Functions 144 8.2.1 Inline functions inside classes 145 8.2.2 Access Functions 146 8.3 Inline Functions and the Compiler 150 8.3.1 Limitations 150 8.3.2 Order of Assignment 150 8.3.3 Hiding Behavior in Constructors and Destructors 151 8.4 Reducing Confusion 152 8.5 Features of the Preprocessor 153 8.6 Improved Error Checking 154 8.7 Summary 155 8.8 Exercises 155 Chapter 9 Naming Control 157 9.1 Static Members from C 157 9.1.1 Static variables inside functions 157 9.1.2 Control Connections 160 9.1.3 Other storage type specifiers 161 9.2 Namespaces 161 9.2.1 Generating a namespace 162 9.2.2 Using namespaces 163 9.3 Static Members in C++ 166 9.3.1 Defining static data member storage 166 9.3.2 Nested and Localized Classes 168 9.3.3 Static Member Functions 169 9.4 Dependencies of Static Initialization 171 9.5 Converting Connection Designations 174 9.6 Summary 174 9.7 Exercises 174 Chapter 10 References and Copy Constructors 176 10.1 Pointers in C++ 176 10.2 References in C++ 176 10.2.1 References in Functions 177 10.2.2 Parameter passing guidelines 178 10.3 Copy constructors 179 10.3.1 Passing and returning by value 179 10.3.2 Copy constructors 182 10.3.3 Default copy constructor 187 10.3.4 Copy constructor method selection 188 10.4 Pointers to members
C Programming Ideas.part01.rar(1 MB, downloads: 5)
C Programming Ideas.part02.rar(1 MB, download: 3)
C Programming Ideas.part03.rar(1 MB, download: 1)
C Programming Ideas.part04.rar(1 MB, download: 1)
C Programming Ideas.part05.rar(1 MB, download: 1)
C Programming Ideas.part06.rar(1 MB, download: 1)
C Programming Ideas.part07.rar(1 MB, download: 1)
C Programming Ideas.part08.rar(1 MB, download: 1)
C Programming Ideas.part09.rar(1 MB, download: 1)
C Programming Ideas.part10.rar(1 MB, download: 2)
C Programming Ideas.part11.rar(747.02 KB, download: 1) 文件名下载附件
|
Previous: Win2003 remote desktop port modificationNext: [Atmospheric] Shenzhen Mission Hills Middle School blue dedecms school template
|