C++面向對象程式設計雙語教程(第3版)

C++面向對象程式設計雙語教程(第3版)

《C++面向對象程式設計雙語教程(第3版)》是2019年8月電子工業出版社出版的圖書,作者是劉嘉敏。

基本介紹

  • 書名:C++面向對象程式設計雙語教程(第3版)
  • 作者:劉嘉敏 
  • ISBN:9787121364549   
  • 頁數:276頁   
  • 定價:54元  
  • 出版社:電子工業出版社
  • 出版時間:2019年8月   
  • 開本:16開
內容簡介,目錄,

內容簡介

本書在保持前兩版特色的基礎上,對部分章節內容進行了修改和補充。全書案例易懂、切合實際。本書共8章,圍繞面向對象程式設計中類和對象的作用,介紹標準C++中類與對象的定義和封裝、繼承、重載、多態、模板的概念及實現方法。本書用通俗易懂的英語描述其內容,讓初學者了解面向對象程式設計的原文表達;而且在各章節中的重要知識點和易混淆知識點處均有雙語註解,有助讀者掌握面向對象的程式設計方法。本書面向具有程式設計基礎的讀者,可作為高等院校計算機及相關專業的面向對象程式設計課程的雙語教材。

目錄

Chapter 1 Introduction 1
1.1 Overview of Programming 1
1.1.1 What Is Programming? 1
1.1.2 How to Write a Program? 3
1.2 Programming Methodologies 5
1.2.1 Structured Programming 5
1.2.2 Object-Oriented Programming 8
1.3 Characteristics of Object-Oriented Programming 10
1.4 C++ Programming Language 13
1.4.1 History of C and C++ 13
1.4.2 Learning C++ 15
Word Tips 16
Exercises 17
Chapter 2 Basic Facilities — Shifting from C to C++ Programs 18
2.1 C++ Program Structure 18
2.2 Input/Output Streams 21
2.2.1 Input Stream 21
2.2.2 Output Stream 22
2.3 Constants 23
2.4 Functions 25
2.4.1 Function Declarations 25
2.4.2 Function Definitions 26
2.4.3 Default Arguments 28
2.4.4 Inline Functions 30
2.4.5 Function Overloading 30
2.5 References 35
2.5.1 Reference Definition 35
2.5.2 Reference Variables as Parameters 39
2.5.3 References as Returning Values 40
2.5.4 Reference as Left-Hand Values 42
2.6 Namespaces 43
Word Tips 47
Exercises 48
Chapter 3 Foundation of Classes and Objects—Data Abstraction and Definition
of Classes 52
3.1 Introduction to Structures 52
3.1.1 Defining a Structure in C++ 52
3.1.2 Accessing Members of Structures 53
3.1.3 Structures with Member Functions 55
3.2 Data Abstraction and Classes 56
3.2.1 Data Abstraction 56
3.2.2 Defining Classes 57
3.2.3 Defining Objects 58
3.2.4 Accessing Member Functions 59
3.2.5 In-Class Member Function Definition 61
3.2.6 File Structure of an Abstract Data Type 63
3.3 Information Hiding 65
3.4 Access Control 66
3.5 Constructors 69
3.5.1 Definition of Constructors 69
3.5.2 Overloading Constructors 70
3.5.3 Constructors with Default Parameters 71
3.6 Destructors 74
3.6.1 Definition of Destructors 74
3.6.2 UML Diagram for Classes 75
3.6.3 The Order of Constructor and Destructor Calls 76
3.7 Encapsulation 78
3.8 Case Study: A GradeBook Class 79
Word Tips 82
Exercises 83
Chapter 4 Advance of Classes and Objects —Further Definition of Class Members
and Objects 87
4.1 Constant Member Functions and Constant Objects 87
4.2 this Pointers 89
4.3 Static Members 91
4.3.1 Static Data Members 93
4.3.2 Static Member Functions 96
4.4 Free Store 97
4.5 Object Members 101
4.5.1 Definition of Object Members 101
4.5.2 The Order of Constructors and Destructors for Member Objects 105
4.5.3 Object Members with Default Constructors 105
4.5.4 Class Members by Using Initializers 106
4.6 Copy Members 107
4.6.1 Definition of Copy Constructors 108
4.6.2 Shallow Copy and Deep Copy 110
4.7 Arrays of Objects 118
4.7.1 Initialize an Object Array by Using a Default Constructor 118
4.7.2 Initialize an Object Array by Using Constructors with Parameters 121
4.8 Friends 122
4.8.1 Friend Functions 122
4.8.2 Friend Classes 125
4.9 Case Study: Advance of the GradeBook Class 126
Word Tips 132
Exercises 132
Chapter 5 Operator Overloading 137
5.1 Introduction to Operator Overloading 137
5.2 Operator Functions 138
5.2.1 Overloaded Operators 138
5.2.2 Operator Functions 138
5.3 Binary and Unary Operators 142
5.3.1 Overloading Binary Operators 142
5.3.2 Overloading Unary Operators 143
5.4 Overloading Combinatorial Operators 147
5.5 Mixed Arithmetic of User-Defined Types 151
5.6 Type Conversion of User-Defined Types 152
5.6.1 Converting a Built-In Type to a User-Defined Type 152
5.6.2 Converting User-Defined Types to Built-In Types 153
5.7 Case Study: A MyInteger Class 155
Word Tips 160
Exercises 160
Chapter 6 Inheritance 163
6.1 Class Hierarchies 163
6.2 Derived Classes 164
6.2.1 Declaration of Derived Classes 164
6.2.2 Structure of Derived Classes 165
6.3 Constructors and Destructors of Derived Classes 168
6.3.1 Constructors of Derived Classes 168
6.3.2 Destructors of Derived Classes 171
6.3.3 The Calling Order of Derived Class Objects 172
6.3.4 Inheritance and Composition 175
6.4 Member Functions of Derived Classes 175
6.4.1 Defining a Member Function 175
6.4.2 Overriding Member Functions 177
6.5 Access Control 179
6.5.1 Access Control in Classes 179
6.5.2 Access to Base Classes 180
6.6 Multiple Inheritance 184
6.6.1 Declaration of Multiple Inheritance 185
6.6.2 Constructors of Multiple Inheritance 187
6.7 Virtual Inheritance 188
6.7.1 Multiple Inheritance Ambiguities 188
6.7.2 Trying to Solve Inheritance Ambiguities 189
6.7.3 Virtual Base Classes 191
6.7.4 Constructing Objects of Multiple Inheritance 194
6.8 Case Study: The iWatch Class 195
Word Tips 201
Exercises 202
Chapter 7 Polymorphism and Virtual Functions 212
7.1 Polymorphism 212
7.1.1 Introduction to Polymorphism 212
7.1.2 Binding 213
7.2 Virtual Functions 216
7.2.1 Definition of Virtual Functions 216
7.2.2 Extensibility 219
7.2.3 Principle of Virtual Functions 221
7.2.4 Virtual Destructors 223
7.2.5 Function Overloading and Function Overriding 224
7.3 Abstract Base Classes 227
7.4 Case Study: A Mini System 230
Word Tips 235
Exercises 235
Chapter 8 Templates 241
8.1 Introduction to Templates 241
8.2 Function Templates 242
8.2.1 Definition of Function Templates 242
8.2.2 Function Template Instantiation 244
8.2.3 Function Template with Different Parameter Types 246
8.2.4 Function Template Overloading 247
8.3 Class Templates 248
8.3.1 Definition of Class Templates 248
8.3.2 Class Template Instantiation 251
8.4 Non-Type Parameters for Templates 253
8.5 Derivation and Class Templates 255
8.6 Case Study: A Vector Class Template 256
Word Tips 262
Exercises 262
References 264,Contents
Chapter 1 Introduction 1
1.1 Overview of Programming 1
1.1.1 What Is Programming? 1
1.1.2 How to Write a Program? 3
1.2 Programming Methodologies 5
1.2.1 Structured Programming 5
1.2.2 Object-Oriented Programming 8
1.3 Characteristics of Object-Oriented Programming 10
1.4 C++ Programming Language 13
1.4.1 History of C and C++ 13
1.4.2 Learning C++ 15
Word Tips 16
Exercises 17
Chapter 2 Basic Facilities — Shifting from C to C++ Programs 18
2.1 C++ Program Structure 18
2.2 Input/Output Streams 21
2.2.1 Input Stream 21
2.2.2 Output Stream 22
2.3 Constants 23
2.4 Functions 25
2.4.1 Function Declarations 25
2.4.2 Function Definitions 26
2.4.3 Default Arguments 28
2.4.4 Inline Functions 30
2.4.5 Function Overloading 30
2.5 References 35
2.5.1 Reference Definition 35
2.5.2 Reference Variables as Parameters 39
2.5.3 References as Returning Values 40
2.5.4 Reference as Left-Hand Values 42
2.6 Namespaces 43
Word Tips 47
Exercises 48
Chapter 3 Foundation of Classes and Objects—Data Abstraction and Definition
of Classes 52
3.1 Introduction to Structures 52
3.1.1 Defining a Structure in C++ 52
3.1.2 Accessing Members of Structures 53
3.1.3 Structures with Member Functions 55
3.2 Data Abstraction and Classes 56
3.2.1 Data Abstraction 56
3.2.2 Defining Classes 57
3.2.3 Defining Objects 58
3.2.4 Accessing Member Functions 59
3.2.5 In-Class Member Function Definition 61
3.2.6 File Structure of an Abstract Data Type 63
3.3 Information Hiding 65
3.4 Access Control 66
3.5 Constructors 69
3.5.1 Definition of Constructors 69
3.5.2 Overloading Constructors 70
3.5.3 Constructors with Default Parameters 71
3.6 Destructors 74
3.6.1 Definition of Destructors 74
3.6.2 UML Diagram for Classes 75
3.6.3 The Order of Constructor and Destructor Calls 76
3.7 Encapsulation 78
3.8 Case Study: A GradeBook Class 79
Word Tips 82
Exercises 83
Chapter 4 Advance of Classes and Objects —Further Definition of Class Members
and Objects 87
4.1 Constant Member Functions and Constant Objects 87
4.2 this Pointers 89
4.3 Static Members 91
4.3.1 Static Data Members 93
4.3.2 Static Member Functions 96
4.4 Free Store 97
4.5 Object Members 101
4.5.1 Definition of Object Members 101
4.5.2 The Order of Constructors and Destructors for Member Objects 105
4.5.3 Object Members with Default Constructors 105
4.5.4 Class Members by Using Initializers 106
4.6 Copy Members 107
4.6.1 Definition of Copy Constructors 108
4.6.2 Shallow Copy and Deep Copy 110
4.7 Arrays of Objects 118
4.7.1 Initialize an Object Array by Using a Default Constructor 118
4.7.2 Initialize an Object Array by Using Constructors with Parameters 121
4.8 Friends 122
4.8.1 Friend Functions 122
4.8.2 Friend Classes 125
4.9 Case Study: Advance of the GradeBook Class 126
Word Tips 132
Exercises 132
Chapter 5 Operator Overloading 137
5.1 Introduction to Operator Overloading 137
5.2 Operator Functions 138
5.2.1 Overloaded Operators 138
5.2.2 Operator Functions 138
5.3 Binary and Unary Operators 142
5.3.1 Overloading Binary Operators 142
5.3.2 Overloading Unary Operators 143
5.4 Overloading Combinatorial Operators 147
5.5 Mixed Arithmetic of User-Defined Types 151
5.6 Type Conversion of User-Defined Types 152
5.6.1 Converting a Built-In Type to a User-Defined Type 152
5.6.2 Converting User-Defined Types to Built-In Types 153
5.7 Case Study: A MyInteger Class 155
Word Tips 160
Exercises 160
Chapter 6 Inheritance 163
6.1 Class Hierarchies 163
6.2 Derived Classes 164
6.2.1 Declaration of Derived Classes 164
6.2.2 Structure of Derived Classes 165
6.3 Constructors and Destructors of Derived Classes 168
6.3.1 Constructors of Derived Classes 168
6.3.2 Destructors of Derived Classes 171
6.3.3 The Calling Order of Derived Class Objects 172
6.3.4 Inheritance and Composition 175
6.4 Member Functions of Derived Classes 175
6.4.1 Defining a Member Function 175
6.4.2 Overriding Member Functions 177
6.5 Access Control 179
6.5.1 Access Control in Classes 179
6.5.2 Access to Base Classes 180
6.6 Multiple Inheritance 184
6.6.1 Declaration of Multiple Inheritance 185
6.6.2 Constructors of Multiple Inheritance 187
6.7 Virtual Inheritance 188
6.7.1 Multiple Inheritance Ambiguities 188
6.7.2 Trying to Solve Inheritance Ambiguities 189
6.7.3 Virtual Base Classes 191
6.7.4 Constructing Objects of Multiple Inheritance 194
6.8 Case Study: The iWatch Class 195
Word Tips 201
Exercises 202
Chapter 7 Polymorphism and Virtual Functions 212
7.1 Polymorphism 212
7.1.1 Introduction to Polymorphism 212
7.1.2 Binding 213
7.2 Virtual Functions 216
7.2.1 Definition of Virtual Functions 216
7.2.2 Extensibility 219
7.2.3 Principle of Virtual Functions 221
7.2.4 Virtual Destructors 223
7.2.5 Function Overloading and Function Overriding 224
7.3 Abstract Base Classes 227
7.4 Case Study: A Mini System 230
Word Tips 235
Exercises 235
Chapter 8 Templates 241
8.1 Introduction to Templates 241
8.2 Function Templates 242
8.2.1 Definition of Function Templates 242
8.2.2 Function Template Instantiation 244
8.2.3 Function Template with Different Parameter Types 246
8.2.4 Function Template Overloading 247
8.3 Class Templates 248
8.3.1 Definition of Class Templates 248
8.3.2 Class Template Instantiation 251
8.4 Non-Type Parameters for Templates 253
8.5 Derivation and Class Templates 255
8.6 Case Study: A Vector Class Template 256
Word Tips 262
Exercises 262
References 264

相關詞條

熱門詞條

聯絡我們