- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
While maintaining the authority and quality of a book that has sold more than 500,000 copies, this Fifth edition is not your father's C++ Primer. It has been completely revised and rewritten to conform to today's C++ usage. and to cover the recently released C++ 2011 standard. Students new to C++ will find a clear and practically organized introduction to the language enhanced by numerous pedagogical aids. Students returning to C++ will be able to update their knowledge with new material on using C++ libraries and programming styles.
Access the source code for the extended examples from informit.com/title/0321714113 …mehr
Andere Kunden interessierten sich auch für
- Stanley B. LippmanC++ Primer (eBook, PDF)27,95 €
- Li ZhengC++ Programming68,99 €
- Milan StevanovicAdvanced C and C++ Compiling74,99 €
- Bjarne StroustrupDie C++-Programmiersprache49,99 €
- Bjarne StroustrupProgramming71,99 €
- Scott MeyersEffective C++38,99 €
- Heiko KalistaC++ für Spieleprogrammierer34,99 €
-
-
-
-
While maintaining the authority and quality of a book that has sold more than 500,000 copies, this Fifth edition is not your father's C++ Primer. It has been completely revised and rewritten to conform to today's C++ usage. and to cover the recently released C++ 2011 standard. Students new to C++ will find a clear and practically organized introduction to the language enhanced by numerous pedagogical aids. Students returning to C++ will be able to update their knowledge with new material on using C++ libraries and programming styles.
Access the source code for the extended examples from informit.com/title/0321714113
Access the source code for the extended examples from informit.com/title/0321714113
Produktdetails
- Produktdetails
- Verlag: Addison-Wesley Longman, Amsterdam
- 5. Aufl.
- Seitenzahl: 976
- Erscheinungstermin: August 2012
- Englisch
- Abmessung: 231mm x 177mm x 51mm
- Gewicht: 1454g
- ISBN-13: 9780321714114
- ISBN-10: 0321714113
- Artikelnr.: 35056378
- Herstellerkennzeichnung
- Books on Demand GmbH
- In de Tarpen 42
- 22848 Norderstedt
- info@bod.de
- 040 53433511
- Verlag: Addison-Wesley Longman, Amsterdam
- 5. Aufl.
- Seitenzahl: 976
- Erscheinungstermin: August 2012
- Englisch
- Abmessung: 231mm x 177mm x 51mm
- Gewicht: 1454g
- ISBN-13: 9780321714114
- ISBN-10: 0321714113
- Artikelnr.: 35056378
- Herstellerkennzeichnung
- Books on Demand GmbH
- In de Tarpen 42
- 22848 Norderstedt
- info@bod.de
- 040 53433511
Stanley B. Lippman has retired back to the Catalina Foothills where he is working on EEEK!, a computational model of the nervous system of the House Mouse, and An Off By One Error, a speculative novel set in the Northwestern Rain Forest. During his professional career, Stanley served as Distinguished Consultant for the Jet Propulsion Laboratory, Architect for the Visual C++ development group at Microsoft, member of technical staff at Bell Laboratories, two stints in Massive Multiplayer Online Gaming, and a surprisingly long stint in Feature Animation at Disney, DreamWorks, Pixar, and PDI. Stanley will be most remembered for his many years working with Dr. Stroustrup on the implementation of cfront, the standard implementation of C++ until the ISO standard. Josée Lajoie, now at Pixar, was a member of IBM Canada’s C/C++ compiler development team, and chaired the core language working group for the original ANSI/ISO C++ standardization committee. Barbara E. Moo has nearly thirty years of software experience. During her fifteen years at AT&T, she worked closely with C++ inventor Bjarne Stroustrup and managed the C++ development team for several years.
Preface xxiii
Chapter 1: Getting Started 1
1.1 Writing a Simple C++ Program 2
1.2 A First Look at Input/Output 5
1.3 A Word About Comments 9
1.4 Flow of Control 11
1.5 Introducing Classes 19
1.6 The Bookstore Program 24
Chapter Summary 26
Defined Terms 26
Part I: The Basics 29
Chapter 2: Variables and Basic Types 31
2.1 Primitive Built-in Types 32
2.2 Variables 41
2.3 Compound Types 50
2.4 const Qualifier 59
2.5 Dealing with Types 67
2.6 Defining Our Own Data Structures 72
Chapter Summary 78
Defined Terms 78
Chapter 3: Strings, Vectors, and Arrays 81
3.1 Namespace using Declarations 82
3.2 Library string Type 84
3.3 Library vector Type 96
3.4 Introducing Iterators 106
3.5 Arrays 113
3.6 Multidimensional Arrays 125
Chapter Summary 131
Defined Terms 131
Chapter 4: Expressions 133
4.1 Fundamentals 134
4.2 Arithmetic Operators 139
4.3 Logical and Relational Operators 141
4.4 Assignment Operators 144
4.5 Increment and Decrement Operators 147
4.6 The Member Access Operators 150
4.7 The Conditional Operator 151
4.8 The Bitwise Operators 152
4.9 The sizeof Operator 156
4.10 Comma Operator 157
4.11 Type Conversions 159
4.12 Operator Precedence Table 166
Chapter Summary 168
Defined Terms 168
Chapter 5: Statements 171
5.1 Simple Statements 172
5.2 Statement Scope 174
5.3 Conditional Statements 174
5.4 Iterative Statements 183
5.5 Jump Statements 190
5.6 try Blocks and Exception Handling 193
Chapter Summary 199
Defined Terms 199
Chapter 6: Functions 201
6.1 Function Basics 202
6.2 Argument Passing 208
6.3 Return Types and the return Statement 222
6.4 Overloaded Functions 230
6.5 Features for Specialized Uses 236
6.6 Function Matching 242
6.7 Pointers to Functions 247
Chapter Summary 251
Defined Terms 251
Chapter 7: Classes 253
7.1 Defining Abstract Data Types 254
7.2 Access Control and Encapsulation 268
7.3 Additional Class Features 271
7.4 Class Scope 282
7.5 Constructors Revisited 288
7.6 static Class Members 300
Chapter Summary 305
Defined Terms 305
Part II: The C++ Library 307
Chapter 8: The IO Library 309
8.1 The IO Classes 310
8.2 File Input and Output 316
8.3 string Streams 321
Chapter Summary 324
Defined Terms 324
Chapter 9: Sequential Containers 325
9.1 Overview of the Sequential Containers 326
9.2 Container Library Overview 328
9.3 Sequential Container Operations 341
9.4 How a vector Grows 355
9.5 Additional string Operations 360
9.6 Container Adaptors 368
Chapter Summary 372
Defined Terms 372
Chapter 10: Generic Algorithms 375
10.1 Overview 376
10.2 A First Look at the Algorithms 378
10.3 Customizing Operations 385
10.4 Revisiting Iterators 401
10.5 Structure of Generic Algorithms 410
10.6 Container-Specific Algorithms 415
Chapter Summary 417
Defined Terms 417
Chapter 11: Associative Containers 419
11.1 Using an Associative Container 420
11.2 Overview of the Associative Containers 423
11.3 Operations on Associative Containers 428
11.4 The Unordered Containers 443
Chapter Summary 447
Defined Terms 447
Chapter 12: Dynamic Memory 449
12.1 Dynamic Memory and Smart Pointers 450
12.2 Dynamic Arrays 476
12.3 Using the Library: A Text-Query Program 484
Chapter Summary 491
Defined Terms 491
Part III: Tools for Class Authors 493
Chapter 13: Copy Control 495
13.1 Copy, Assign, and Destroy 496
13.2 Copy Control and Resource Management 510
13.3 Swap 516
13.4 A Copy-Control Example 519
13.5 Classes that Manage Dynamic Memory 524
13.6 Moving Objects 531
Chapter Summary 549
Defined Terms 549
Chapter 14: Overloaded Operations and Conversions 551
14.1 Basic Concepts 552
14.2 Input and Output Operators 556
14.3 Arithmetic and Relational Operators 560
14.4 Assignment Operators 563
14.5 Subscript Operator 564
14.6 Increment and Decrement Operators 566
14.7 Member Access Operators 569
14.8 Function-Call Operator 571
14.9 Overloading, Conversions, and Operators 579
Chapter Summary 590
Defined Terms 590
Chapter 15: Object-Oriented Programming 591
15.1 OOP: An Overview 592
15.2 Defining Base and Derived Classes 594
15.3 Virtual Functions 603
15.4 Abstract Base Classes 608
15.5 Access Control and Inheritance 511
15.6 Class Scope under Inheritance 617
15.7 Constructors and Copy Control 622
15.8 Containers and Inheritance 630
15.9 Text Queries Revisited 634
Chapter Summary 649
Defined Terms 649
Chapter 16: Templates and Generic Programming 651
16.1 Defining a Template 652
16.2 Template Argument Deduction 678
16.3 Overloading and Templates 694
16.4 Variadic Templates 699
16.5 Template Specializations 706
Chapter Summary 713
Defined Terms 713
Part IV: Advanced Topics 715
Chapter 17: Specialized Library Facilities 717
17.1 The tuple Type 718
17.2 The bitset Type 723
17.3 Regular Expressions 728
17.4 Random Numbers 745
17.5 The IO Library Revisited 752
Chapter Summary 769
Defined Terms 769
Chapter 18: Tools for Large Programs 771
18.1 Exception Handling 772
18.2 Namespaces 785
18.3 Multiple and Virtual Inheritance 802
Chapter Summary 816
Defined Terms 816
Chapter 19: Specialized Tools and Techniques 819
19.1 Controlling Memory Allocation 820
19.2 Run-Time Type Identification 825
19.3 Enumerations 832
19.4 Pointer to Class Member 835
19.5 Nested Classes 843
19.6 Union: A Space-Saving Class 847
19.7 Local Classes 852
19.8 Inherently Nonportable Features 854
Chapter Summary 862
Defined Terms 862
Appendix A: The Library 865
A.1 Library Names and Headers 866
A.2 A Brief Tour of the Algorithms 870
A.3 Random Numbers 882
Index 887
Chapter 1: Getting Started 1
1.1 Writing a Simple C++ Program 2
1.2 A First Look at Input/Output 5
1.3 A Word About Comments 9
1.4 Flow of Control 11
1.5 Introducing Classes 19
1.6 The Bookstore Program 24
Chapter Summary 26
Defined Terms 26
Part I: The Basics 29
Chapter 2: Variables and Basic Types 31
2.1 Primitive Built-in Types 32
2.2 Variables 41
2.3 Compound Types 50
2.4 const Qualifier 59
2.5 Dealing with Types 67
2.6 Defining Our Own Data Structures 72
Chapter Summary 78
Defined Terms 78
Chapter 3: Strings, Vectors, and Arrays 81
3.1 Namespace using Declarations 82
3.2 Library string Type 84
3.3 Library vector Type 96
3.4 Introducing Iterators 106
3.5 Arrays 113
3.6 Multidimensional Arrays 125
Chapter Summary 131
Defined Terms 131
Chapter 4: Expressions 133
4.1 Fundamentals 134
4.2 Arithmetic Operators 139
4.3 Logical and Relational Operators 141
4.4 Assignment Operators 144
4.5 Increment and Decrement Operators 147
4.6 The Member Access Operators 150
4.7 The Conditional Operator 151
4.8 The Bitwise Operators 152
4.9 The sizeof Operator 156
4.10 Comma Operator 157
4.11 Type Conversions 159
4.12 Operator Precedence Table 166
Chapter Summary 168
Defined Terms 168
Chapter 5: Statements 171
5.1 Simple Statements 172
5.2 Statement Scope 174
5.3 Conditional Statements 174
5.4 Iterative Statements 183
5.5 Jump Statements 190
5.6 try Blocks and Exception Handling 193
Chapter Summary 199
Defined Terms 199
Chapter 6: Functions 201
6.1 Function Basics 202
6.2 Argument Passing 208
6.3 Return Types and the return Statement 222
6.4 Overloaded Functions 230
6.5 Features for Specialized Uses 236
6.6 Function Matching 242
6.7 Pointers to Functions 247
Chapter Summary 251
Defined Terms 251
Chapter 7: Classes 253
7.1 Defining Abstract Data Types 254
7.2 Access Control and Encapsulation 268
7.3 Additional Class Features 271
7.4 Class Scope 282
7.5 Constructors Revisited 288
7.6 static Class Members 300
Chapter Summary 305
Defined Terms 305
Part II: The C++ Library 307
Chapter 8: The IO Library 309
8.1 The IO Classes 310
8.2 File Input and Output 316
8.3 string Streams 321
Chapter Summary 324
Defined Terms 324
Chapter 9: Sequential Containers 325
9.1 Overview of the Sequential Containers 326
9.2 Container Library Overview 328
9.3 Sequential Container Operations 341
9.4 How a vector Grows 355
9.5 Additional string Operations 360
9.6 Container Adaptors 368
Chapter Summary 372
Defined Terms 372
Chapter 10: Generic Algorithms 375
10.1 Overview 376
10.2 A First Look at the Algorithms 378
10.3 Customizing Operations 385
10.4 Revisiting Iterators 401
10.5 Structure of Generic Algorithms 410
10.6 Container-Specific Algorithms 415
Chapter Summary 417
Defined Terms 417
Chapter 11: Associative Containers 419
11.1 Using an Associative Container 420
11.2 Overview of the Associative Containers 423
11.3 Operations on Associative Containers 428
11.4 The Unordered Containers 443
Chapter Summary 447
Defined Terms 447
Chapter 12: Dynamic Memory 449
12.1 Dynamic Memory and Smart Pointers 450
12.2 Dynamic Arrays 476
12.3 Using the Library: A Text-Query Program 484
Chapter Summary 491
Defined Terms 491
Part III: Tools for Class Authors 493
Chapter 13: Copy Control 495
13.1 Copy, Assign, and Destroy 496
13.2 Copy Control and Resource Management 510
13.3 Swap 516
13.4 A Copy-Control Example 519
13.5 Classes that Manage Dynamic Memory 524
13.6 Moving Objects 531
Chapter Summary 549
Defined Terms 549
Chapter 14: Overloaded Operations and Conversions 551
14.1 Basic Concepts 552
14.2 Input and Output Operators 556
14.3 Arithmetic and Relational Operators 560
14.4 Assignment Operators 563
14.5 Subscript Operator 564
14.6 Increment and Decrement Operators 566
14.7 Member Access Operators 569
14.8 Function-Call Operator 571
14.9 Overloading, Conversions, and Operators 579
Chapter Summary 590
Defined Terms 590
Chapter 15: Object-Oriented Programming 591
15.1 OOP: An Overview 592
15.2 Defining Base and Derived Classes 594
15.3 Virtual Functions 603
15.4 Abstract Base Classes 608
15.5 Access Control and Inheritance 511
15.6 Class Scope under Inheritance 617
15.7 Constructors and Copy Control 622
15.8 Containers and Inheritance 630
15.9 Text Queries Revisited 634
Chapter Summary 649
Defined Terms 649
Chapter 16: Templates and Generic Programming 651
16.1 Defining a Template 652
16.2 Template Argument Deduction 678
16.3 Overloading and Templates 694
16.4 Variadic Templates 699
16.5 Template Specializations 706
Chapter Summary 713
Defined Terms 713
Part IV: Advanced Topics 715
Chapter 17: Specialized Library Facilities 717
17.1 The tuple Type 718
17.2 The bitset Type 723
17.3 Regular Expressions 728
17.4 Random Numbers 745
17.5 The IO Library Revisited 752
Chapter Summary 769
Defined Terms 769
Chapter 18: Tools for Large Programs 771
18.1 Exception Handling 772
18.2 Namespaces 785
18.3 Multiple and Virtual Inheritance 802
Chapter Summary 816
Defined Terms 816
Chapter 19: Specialized Tools and Techniques 819
19.1 Controlling Memory Allocation 820
19.2 Run-Time Type Identification 825
19.3 Enumerations 832
19.4 Pointer to Class Member 835
19.5 Nested Classes 843
19.6 Union: A Space-Saving Class 847
19.7 Local Classes 852
19.8 Inherently Nonportable Features 854
Chapter Summary 862
Defined Terms 862
Appendix A: The Library 865
A.1 Library Names and Headers 866
A.2 A Brief Tour of the Algorithms 870
A.3 Random Numbers 882
Index 887
Preface xxiii
Chapter 1: Getting Started 1
1.1 Writing a Simple C++ Program 2
1.2 A First Look at Input/Output 5
1.3 A Word About Comments 9
1.4 Flow of Control 11
1.5 Introducing Classes 19
1.6 The Bookstore Program 24
Chapter Summary 26
Defined Terms 26
Part I: The Basics 29
Chapter 2: Variables and Basic Types 31
2.1 Primitive Built-in Types 32
2.2 Variables 41
2.3 Compound Types 50
2.4 const Qualifier 59
2.5 Dealing with Types 67
2.6 Defining Our Own Data Structures 72
Chapter Summary 78
Defined Terms 78
Chapter 3: Strings, Vectors, and Arrays 81
3.1 Namespace using Declarations 82
3.2 Library string Type 84
3.3 Library vector Type 96
3.4 Introducing Iterators 106
3.5 Arrays 113
3.6 Multidimensional Arrays 125
Chapter Summary 131
Defined Terms 131
Chapter 4: Expressions 133
4.1 Fundamentals 134
4.2 Arithmetic Operators 139
4.3 Logical and Relational Operators 141
4.4 Assignment Operators 144
4.5 Increment and Decrement Operators 147
4.6 The Member Access Operators 150
4.7 The Conditional Operator 151
4.8 The Bitwise Operators 152
4.9 The sizeof Operator 156
4.10 Comma Operator 157
4.11 Type Conversions 159
4.12 Operator Precedence Table 166
Chapter Summary 168
Defined Terms 168
Chapter 5: Statements 171
5.1 Simple Statements 172
5.2 Statement Scope 174
5.3 Conditional Statements 174
5.4 Iterative Statements 183
5.5 Jump Statements 190
5.6 try Blocks and Exception Handling 193
Chapter Summary 199
Defined Terms 199
Chapter 6: Functions 201
6.1 Function Basics 202
6.2 Argument Passing 208
6.3 Return Types and the return Statement 222
6.4 Overloaded Functions 230
6.5 Features for Specialized Uses 236
6.6 Function Matching 242
6.7 Pointers to Functions 247
Chapter Summary 251
Defined Terms 251
Chapter 7: Classes 253
7.1 Defining Abstract Data Types 254
7.2 Access Control and Encapsulation 268
7.3 Additional Class Features 271
7.4 Class Scope 282
7.5 Constructors Revisited 288
7.6 static Class Members 300
Chapter Summary 305
Defined Terms 305
Part II: The C++ Library 307
Chapter 8: The IO Library 309
8.1 The IO Classes 310
8.2 File Input and Output 316
8.3 string Streams 321
Chapter Summary 324
Defined Terms 324
Chapter 9: Sequential Containers 325
9.1 Overview of the Sequential Containers 326
9.2 Container Library Overview 328
9.3 Sequential Container Operations 341
9.4 How a vector Grows 355
9.5 Additional string Operations 360
9.6 Container Adaptors 368
Chapter Summary 372
Defined Terms 372
Chapter 10: Generic Algorithms 375
10.1 Overview 376
10.2 A First Look at the Algorithms 378
10.3 Customizing Operations 385
10.4 Revisiting Iterators 401
10.5 Structure of Generic Algorithms 410
10.6 Container-Specific Algorithms 415
Chapter Summary 417
Defined Terms 417
Chapter 11: Associative Containers 419
11.1 Using an Associative Container 420
11.2 Overview of the Associative Containers 423
11.3 Operations on Associative Containers 428
11.4 The Unordered Containers 443
Chapter Summary 447
Defined Terms 447
Chapter 12: Dynamic Memory 449
12.1 Dynamic Memory and Smart Pointers 450
12.2 Dynamic Arrays 476
12.3 Using the Library: A Text-Query Program 484
Chapter Summary 491
Defined Terms 491
Part III: Tools for Class Authors 493
Chapter 13: Copy Control 495
13.1 Copy, Assign, and Destroy 496
13.2 Copy Control and Resource Management 510
13.3 Swap 516
13.4 A Copy-Control Example 519
13.5 Classes that Manage Dynamic Memory 524
13.6 Moving Objects 531
Chapter Summary 549
Defined Terms 549
Chapter 14: Overloaded Operations and Conversions 551
14.1 Basic Concepts 552
14.2 Input and Output Operators 556
14.3 Arithmetic and Relational Operators 560
14.4 Assignment Operators 563
14.5 Subscript Operator 564
14.6 Increment and Decrement Operators 566
14.7 Member Access Operators 569
14.8 Function-Call Operator 571
14.9 Overloading, Conversions, and Operators 579
Chapter Summary 590
Defined Terms 590
Chapter 15: Object-Oriented Programming 591
15.1 OOP: An Overview 592
15.2 Defining Base and Derived Classes 594
15.3 Virtual Functions 603
15.4 Abstract Base Classes 608
15.5 Access Control and Inheritance 511
15.6 Class Scope under Inheritance 617
15.7 Constructors and Copy Control 622
15.8 Containers and Inheritance 630
15.9 Text Queries Revisited 634
Chapter Summary 649
Defined Terms 649
Chapter 16: Templates and Generic Programming 651
16.1 Defining a Template 652
16.2 Template Argument Deduction 678
16.3 Overloading and Templates 694
16.4 Variadic Templates 699
16.5 Template Specializations 706
Chapter Summary 713
Defined Terms 713
Part IV: Advanced Topics 715
Chapter 17: Specialized Library Facilities 717
17.1 The tuple Type 718
17.2 The bitset Type 723
17.3 Regular Expressions 728
17.4 Random Numbers 745
17.5 The IO Library Revisited 752
Chapter Summary 769
Defined Terms 769
Chapter 18: Tools for Large Programs 771
18.1 Exception Handling 772
18.2 Namespaces 785
18.3 Multiple and Virtual Inheritance 802
Chapter Summary 816
Defined Terms 816
Chapter 19: Specialized Tools and Techniques 819
19.1 Controlling Memory Allocation 820
19.2 Run-Time Type Identification 825
19.3 Enumerations 832
19.4 Pointer to Class Member 835
19.5 Nested Classes 843
19.6 Union: A Space-Saving Class 847
19.7 Local Classes 852
19.8 Inherently Nonportable Features 854
Chapter Summary 862
Defined Terms 862
Appendix A: The Library 865
A.1 Library Names and Headers 866
A.2 A Brief Tour of the Algorithms 870
A.3 Random Numbers 882
Index 887
Chapter 1: Getting Started 1
1.1 Writing a Simple C++ Program 2
1.2 A First Look at Input/Output 5
1.3 A Word About Comments 9
1.4 Flow of Control 11
1.5 Introducing Classes 19
1.6 The Bookstore Program 24
Chapter Summary 26
Defined Terms 26
Part I: The Basics 29
Chapter 2: Variables and Basic Types 31
2.1 Primitive Built-in Types 32
2.2 Variables 41
2.3 Compound Types 50
2.4 const Qualifier 59
2.5 Dealing with Types 67
2.6 Defining Our Own Data Structures 72
Chapter Summary 78
Defined Terms 78
Chapter 3: Strings, Vectors, and Arrays 81
3.1 Namespace using Declarations 82
3.2 Library string Type 84
3.3 Library vector Type 96
3.4 Introducing Iterators 106
3.5 Arrays 113
3.6 Multidimensional Arrays 125
Chapter Summary 131
Defined Terms 131
Chapter 4: Expressions 133
4.1 Fundamentals 134
4.2 Arithmetic Operators 139
4.3 Logical and Relational Operators 141
4.4 Assignment Operators 144
4.5 Increment and Decrement Operators 147
4.6 The Member Access Operators 150
4.7 The Conditional Operator 151
4.8 The Bitwise Operators 152
4.9 The sizeof Operator 156
4.10 Comma Operator 157
4.11 Type Conversions 159
4.12 Operator Precedence Table 166
Chapter Summary 168
Defined Terms 168
Chapter 5: Statements 171
5.1 Simple Statements 172
5.2 Statement Scope 174
5.3 Conditional Statements 174
5.4 Iterative Statements 183
5.5 Jump Statements 190
5.6 try Blocks and Exception Handling 193
Chapter Summary 199
Defined Terms 199
Chapter 6: Functions 201
6.1 Function Basics 202
6.2 Argument Passing 208
6.3 Return Types and the return Statement 222
6.4 Overloaded Functions 230
6.5 Features for Specialized Uses 236
6.6 Function Matching 242
6.7 Pointers to Functions 247
Chapter Summary 251
Defined Terms 251
Chapter 7: Classes 253
7.1 Defining Abstract Data Types 254
7.2 Access Control and Encapsulation 268
7.3 Additional Class Features 271
7.4 Class Scope 282
7.5 Constructors Revisited 288
7.6 static Class Members 300
Chapter Summary 305
Defined Terms 305
Part II: The C++ Library 307
Chapter 8: The IO Library 309
8.1 The IO Classes 310
8.2 File Input and Output 316
8.3 string Streams 321
Chapter Summary 324
Defined Terms 324
Chapter 9: Sequential Containers 325
9.1 Overview of the Sequential Containers 326
9.2 Container Library Overview 328
9.3 Sequential Container Operations 341
9.4 How a vector Grows 355
9.5 Additional string Operations 360
9.6 Container Adaptors 368
Chapter Summary 372
Defined Terms 372
Chapter 10: Generic Algorithms 375
10.1 Overview 376
10.2 A First Look at the Algorithms 378
10.3 Customizing Operations 385
10.4 Revisiting Iterators 401
10.5 Structure of Generic Algorithms 410
10.6 Container-Specific Algorithms 415
Chapter Summary 417
Defined Terms 417
Chapter 11: Associative Containers 419
11.1 Using an Associative Container 420
11.2 Overview of the Associative Containers 423
11.3 Operations on Associative Containers 428
11.4 The Unordered Containers 443
Chapter Summary 447
Defined Terms 447
Chapter 12: Dynamic Memory 449
12.1 Dynamic Memory and Smart Pointers 450
12.2 Dynamic Arrays 476
12.3 Using the Library: A Text-Query Program 484
Chapter Summary 491
Defined Terms 491
Part III: Tools for Class Authors 493
Chapter 13: Copy Control 495
13.1 Copy, Assign, and Destroy 496
13.2 Copy Control and Resource Management 510
13.3 Swap 516
13.4 A Copy-Control Example 519
13.5 Classes that Manage Dynamic Memory 524
13.6 Moving Objects 531
Chapter Summary 549
Defined Terms 549
Chapter 14: Overloaded Operations and Conversions 551
14.1 Basic Concepts 552
14.2 Input and Output Operators 556
14.3 Arithmetic and Relational Operators 560
14.4 Assignment Operators 563
14.5 Subscript Operator 564
14.6 Increment and Decrement Operators 566
14.7 Member Access Operators 569
14.8 Function-Call Operator 571
14.9 Overloading, Conversions, and Operators 579
Chapter Summary 590
Defined Terms 590
Chapter 15: Object-Oriented Programming 591
15.1 OOP: An Overview 592
15.2 Defining Base and Derived Classes 594
15.3 Virtual Functions 603
15.4 Abstract Base Classes 608
15.5 Access Control and Inheritance 511
15.6 Class Scope under Inheritance 617
15.7 Constructors and Copy Control 622
15.8 Containers and Inheritance 630
15.9 Text Queries Revisited 634
Chapter Summary 649
Defined Terms 649
Chapter 16: Templates and Generic Programming 651
16.1 Defining a Template 652
16.2 Template Argument Deduction 678
16.3 Overloading and Templates 694
16.4 Variadic Templates 699
16.5 Template Specializations 706
Chapter Summary 713
Defined Terms 713
Part IV: Advanced Topics 715
Chapter 17: Specialized Library Facilities 717
17.1 The tuple Type 718
17.2 The bitset Type 723
17.3 Regular Expressions 728
17.4 Random Numbers 745
17.5 The IO Library Revisited 752
Chapter Summary 769
Defined Terms 769
Chapter 18: Tools for Large Programs 771
18.1 Exception Handling 772
18.2 Namespaces 785
18.3 Multiple and Virtual Inheritance 802
Chapter Summary 816
Defined Terms 816
Chapter 19: Specialized Tools and Techniques 819
19.1 Controlling Memory Allocation 820
19.2 Run-Time Type Identification 825
19.3 Enumerations 832
19.4 Pointer to Class Member 835
19.5 Nested Classes 843
19.6 Union: A Space-Saving Class 847
19.7 Local Classes 852
19.8 Inherently Nonportable Features 854
Chapter Summary 862
Defined Terms 862
Appendix A: The Library 865
A.1 Library Names and Headers 866
A.2 A Brief Tour of the Algorithms 870
A.3 Random Numbers 882
Index 887