This edition has been completely revised and rewritten to conform to today' s C++ usage.
Students new to C++ will find a clear and practically organised 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.
Bestselling Programming Tutorial and Reference Completely Rewritten for the New C++11 Standard
Fully updated and recast for the newly released C++11 standard, this authoritative and comprehensive introduction to C++ will help you to learn the language fast, and to use it in modern, highly effective ways. Highlighting today s best practices, the authors show how to use both the core language and its standard library to write efficient, readable, and powerful code.
C++ Primer, Fifth Edition,
introduces the C++ standard library from the outset, drawing on its common functions and facilities to help you write useful programs without first having to master every language detail. The book s many examples have been revised to use the new language features and demonstrate how to make the best use of them. This book is a proven tutorial for those new to C++, an authoritative discussion of core C++ concepts and techniques, and a valuable resource for experienced programmers, especially those eager to see C++11 enhancements illuminated.
Start Fast and Achieve More
Access the source code for the extended examples from informit. com/title/0321714113
C++ Primer, Fifth Edition,
features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface. This special binding method notable by a small space inside the spine also increases durability.
Inhaltsverzeichnis
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