- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
An Introduction to Programming by the Inventor of C++
Preparation for Programming in the Real World
The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field. Focus on Fundamental Concepts and Techniques
The book explains fundamental concepts and techniques in greater depth than traditional introductions. This approach will give you a solid foundation for writing useful, correct, maintainable, and efficient code. Programming with Todays C++ (C++11 and C++14)
The book is an introduction to…mehr
Andere Kunden interessierten sich auch für
- Bjarne StroustrupDie C++-Programmiersprache49,99 €
- Stanley B. LippmanC++ Primer38,99 €
- Nicolai M. JosuttisThe C++ Standard Library85,99 €
- Randall HydeWrite Great Code, Volume 134,99 €
- Li ZhengC++ Programming65,99 €
- John R. BerryhillC++ Scientific Programming125,99 €
- Scott MeyersEffective C++34,99 €
-
-
-
-
An Introduction to Programming by the Inventor of C++
Preparation for Programming in the Real World
The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field.
Focus on Fundamental Concepts and Techniques
The book explains fundamental concepts and techniques in greater depth than traditional introductions. This approach will give you a solid foundation for writing useful, correct, maintainable, and efficient code.
Programming with Todays C++ (C++11 and C++14)
The book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. The book presents modern C++ programming techniques from the start, introducing the C++ standard library and C++11 and C++14 features to simplify programming tasks.
For BeginnersAnd Anyone Who Wants to Learn Something New
The book is primarily designed for people who have never programmed before, and it has been tested with many thousands of first-year university students. It has also been extensively used for self-study. Also, practitioners and advanced students have gained new insight and guidance by seeing how a master approaches the elements of his art.
Provides a Broad View
The first half of the book covers a wide range of essential concepts, design and programming techniques, language features, and libraries. Those will enable you to write programs involving input, output, computation, and simple graphics. The second half explores more specialized topics (such as text processing, testing, and the C programming language) and provides abundant reference material. Source code and support supplements are available from the authors website.
Preparation for Programming in the Real World
The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field.
Focus on Fundamental Concepts and Techniques
The book explains fundamental concepts and techniques in greater depth than traditional introductions. This approach will give you a solid foundation for writing useful, correct, maintainable, and efficient code.
Programming with Todays C++ (C++11 and C++14)
The book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. The book presents modern C++ programming techniques from the start, introducing the C++ standard library and C++11 and C++14 features to simplify programming tasks.
For BeginnersAnd Anyone Who Wants to Learn Something New
The book is primarily designed for people who have never programmed before, and it has been tested with many thousands of first-year university students. It has also been extensively used for self-study. Also, practitioners and advanced students have gained new insight and guidance by seeing how a master approaches the elements of his art.
Provides a Broad View
The first half of the book covers a wide range of essential concepts, design and programming techniques, language features, and libraries. Those will enable you to write programs involving input, output, computation, and simple graphics. The second half explores more specialized topics (such as text processing, testing, and the C programming language) and provides abundant reference material. Source code and support supplements are available from the authors website.
Produktdetails
- Produktdetails
- Verlag: Addison-Wesley Longman, Amsterdam / Pearson International
- 2. Auflage
- Seitenzahl: 1312
- Erscheinungstermin: 15. Mai 2014
- Englisch
- Abmessung: 233mm x 196mm x 53mm
- Gewicht: 2030g
- ISBN-13: 9780321992789
- ISBN-10: 0321992784
- Artikelnr.: 40076304
- Verlag: Addison-Wesley Longman, Amsterdam / Pearson International
- 2. Auflage
- Seitenzahl: 1312
- Erscheinungstermin: 15. Mai 2014
- Englisch
- Abmessung: 233mm x 196mm x 53mm
- Gewicht: 2030g
- ISBN-13: 9780321992789
- ISBN-10: 0321992784
- Artikelnr.: 40076304
Bjarne Stroustrup is the designer and original implementer of C++, as well as the author of The C++ Programming Language, Fourth Edition (Addison-Wesley, 2013), and A Tour of C++ (Addison-Wesley, 2014) and many popular and academic publications. Dr. Stroustrup is a managing director at Morgan Stanley in New York City, as well as a visiting professor at Columbia University and a Research distinguished professor at Texas A&M University. He is a member of the U.S. National Academy of Engineering, an IEEE Fellow, and an ACM fellow. His research interests include distributed systems, design, programming techniques, software development tools, and programming languages. He is actively involved in the ISO standardization of C++.
- Chapter 0: Notes to the Reader
- Chapter 1: Computers, People, and Programming
- Chapter 2: Hello, World!
- Chapter 3: Objects, Types, and Values
- Chapter 4: Computation
- Chapter 5: Errors
- Chapter 6: Writing a Program
- Chapter 7: Completing a Program
- Chapter 8: Technicalities: Functions, etc.
- Chapter 9: Technicalities: Classes, etc
- Chapter 10: Input and Output Streams
- Chapter 11: Customizing Input and Output
- Chapter 12: A Display Model
- Chapter 13: Graphics Classes
- Chapter 14: Graphics Class Design
- Chapter 15: Graphing Functions and Data
- Chapter 16: Graphical User Interfaces
- Chapter 17: Vector and Free Store
- Chapter 18: Vectors and Arrays
- Chapter 19: Vector, Templates, and Exceptions
- Chapter 20: Containers and Iterators
- Chapter 21: Algorithms and Maps
- Chapter 22: Ideals and History
- Chapter 23: Text Manipulation
- Chapter 24: Numerics
- Chapter 25: Embedded Systems Programming
- Chapter 26: Testing
- Chapter 27: The C Programming Language
Preface ix
Chapter 0: Notes to the Reader 1
0.1 The structure of this book 2
0.2 A philosophy of teaching and learning 5
0.3 ISO standard C++ 8
0.4 PPP support 11
0.5 Author biography 13
0.6 Bibliography 13
Part I: The Basics
Chapter 1: Hello, World! 17
1.1 Programs 18
1.2 The classic first program 18
1.3 Compilation 21
1.4 Linking 23
1.5 Programming environments 24
Chapter 2: Objects, Types, and Values 29
2.1 Input 30
2.2 Variables 32
2.3 Input and type 33
2.4 Operations and operators 34
2.5 Assignment and initialization 36
2.6 Names 40
2.7 Types and objects 42
2.8 Type safety 43
2.9 Conversions 44
2.10 Type deduction: auto 46
Chapter 3 Computation 51
3.1 Computation 52
3.2 Objectives and tools 53
3.3 Expressions 55
3.4 Statements 58
3.5 Functions 68
3.6 vector 71
3.7 Language features 77
Chapter 4: Errors! 83
4.1 Introduction 84
4.2 Sources of errors 85
4.3 Compile-time errors 86
4.4 Link-time errors 88
4.5 Run-time errors 89
4.6 Exceptions 94
4.7 Avoiding and finding errors 99
Chapter 5: Writing a Program 115
5.1 A problem 116
5.2 Thinking about the problem 116
5.3 Back to the calculator! 119
5.4 Back to the drawing board 126
5.5 Turning a grammar into code 130
5.6 Trying the first version 136
5.7 Trying the second version 140
5.8 Token streams 142
5.9 Program structure 146
Chapter 6: Completing a Program 151
6.1 Introduction 152
6.2 Input and output 152
6.3 Error handling 154
6.4 Negative numbers 156
6.5 Remainder: % 157
6.6 Cleaning up the code 158
6.7 Recovering from errors164
6.8 Variables 167
Chapter 7: Technicalities: Functions, etc. 179
7.1 Technicalities 180
7.2 Declarations and definitions 181
7.3 Scope 186
7.4 Function call and return 190
7.5 Order of evaluation 206
7.6 Namespaces 209
7.7 Modules and headers 211
Chapter 8: Technicalities: Classes, etc. 221
8.1 User-defined types 222
8.2 Classes and members 223
8.3 Interface and implementation 223
8.4 Evolving a class: Date 225
8.5 Enumerations 233
8.6 Operator overloading 236
8.7 Class interfaces 237
Part II: Input and Output
Chapter 9: Input and Output Streams 251
9.1 Input and output 252
9.2 The I/O stream model 253
9.3 Files 254
9.4 I/O error handling 258
9.5 Reading a single value 261
9.6 User-defined output operators 266
9.7 User-defined input operators 266
9.8 A standard input loop 267
9.9 Reading a structured file 269
9.10 Formatting 276
9.11 String streams 283
Chapter 10: A Display Model 289
10.1 Why graphics? 290
10.2 A display model 290
10.3 A first example 292
10.4 Using a GUI library 295
10.5 Coordinates 296
10.6 Shapes 297
10.7 Using Shape primitives297
10.8 Getting the first example to run 309
Chapter 11: Graphics Classes 315
11.1 Overview of graphics classes 316
11.2 Point and Line 317
11.3 Lines 320
11.4 Color 323
11.5 Line_style 325
11.6 Polylines 328
11.7 Closed shapes 333
11.8 Text 346
11.9 Mark 348
11.10 Image 350
Chapter 12: Class Design 355
12.1 Design principles 356
12.2 Shape 360
12.3 Base and derived classes 367
12.4 Other Shape functions 375
12.5 Benefits of object-oriented programming 376
Chapter 13: Graphing Functions and Data 381
13.1 Introduction 382
13.2 Graphing simple functions 382
13.3 Function 386
13.4 Axis 390
13.5 Approximation 392
13.6 Graphing data 397
Chapter 14: Graphical User Interfaces 409
14.1 User-interface alternatives 410
14.2 The Next button 411
14.3 A simple window 412
14.4 Button and other Widgets 414
14.5 An example: drawing lines 419
14.6 Simple animation 426
14.7 Debugging GUI code 427
Part III: Data and Algorithms
Chapter 15: Vector and Free Store 435
15.1 Introduction 436
15.2 vector basics 437
15.3 Memory, addresses, and pointers 439
15.4 Free store and pointers 442
15.5 Destructors 447
15.6 Access to elements 451
15.7 An example: lists 452
15.8 The this pointer 456
Chapter 16: Arrays, Pointers, and References 463
16.1 Arrays 464
16.2 Pointers and references468
16.3 C-style strings 471
16.4 Alternatives to pointer use 472
16.5 An example: palindromes 475
Chapter 17: Essential Operations 483
17.1 Introduction 484
17.2 Access to elements 484
17.3 List initialization 486
17.4 Copying and moving 488
17.5 Essential operations 495
17.6 Other useful operations500
17.7 Remaining Vector problems 502
17.8 Changing size 504
17.9 Our Vector so far 509
Chapter 18: Templates and Exceptions 513
18.1 Templates 514
18.2 Generalizing Vector 522
18.3 Range checking and exceptions 525
18.4 Resources and exceptions 529
18.5 Resource-management pointers 537
Chapter 19: Containers and Iterators 545
19.1 Storing and processing data 546
19.2 Sequences and iterators552
19.3 Linked lists 555
19.4 Generalizing Vector yet again 560
19.5 An example: a simple text editor 566
19.6 vector, list, and string 572
Chapter 20: Maps and Sets 577
20.1 Associative containers 578
20.2 map 578
20.3 unordered_map 585
20.4 Timing 586
20.5 set 589
20.6 Container overview 591
20.7 Ranges and iterators 597
Chapter 21: Algorithms 603
21.1 Standard-library algorithms 604
21.2 Function objects 610
21.3 Numerical algorithms 614
21.4 Copying 619
21.5 Sorting and searching 620
Index 625
Chapter 0: Notes to the Reader 1
0.1 The structure of this book 2
0.2 A philosophy of teaching and learning 5
0.3 ISO standard C++ 8
0.4 PPP support 11
0.5 Author biography 13
0.6 Bibliography 13
Part I: The Basics
Chapter 1: Hello, World! 17
1.1 Programs 18
1.2 The classic first program 18
1.3 Compilation 21
1.4 Linking 23
1.5 Programming environments 24
Chapter 2: Objects, Types, and Values 29
2.1 Input 30
2.2 Variables 32
2.3 Input and type 33
2.4 Operations and operators 34
2.5 Assignment and initialization 36
2.6 Names 40
2.7 Types and objects 42
2.8 Type safety 43
2.9 Conversions 44
2.10 Type deduction: auto 46
Chapter 3 Computation 51
3.1 Computation 52
3.2 Objectives and tools 53
3.3 Expressions 55
3.4 Statements 58
3.5 Functions 68
3.6 vector 71
3.7 Language features 77
Chapter 4: Errors! 83
4.1 Introduction 84
4.2 Sources of errors 85
4.3 Compile-time errors 86
4.4 Link-time errors 88
4.5 Run-time errors 89
4.6 Exceptions 94
4.7 Avoiding and finding errors 99
Chapter 5: Writing a Program 115
5.1 A problem 116
5.2 Thinking about the problem 116
5.3 Back to the calculator! 119
5.4 Back to the drawing board 126
5.5 Turning a grammar into code 130
5.6 Trying the first version 136
5.7 Trying the second version 140
5.8 Token streams 142
5.9 Program structure 146
Chapter 6: Completing a Program 151
6.1 Introduction 152
6.2 Input and output 152
6.3 Error handling 154
6.4 Negative numbers 156
6.5 Remainder: % 157
6.6 Cleaning up the code 158
6.7 Recovering from errors164
6.8 Variables 167
Chapter 7: Technicalities: Functions, etc. 179
7.1 Technicalities 180
7.2 Declarations and definitions 181
7.3 Scope 186
7.4 Function call and return 190
7.5 Order of evaluation 206
7.6 Namespaces 209
7.7 Modules and headers 211
Chapter 8: Technicalities: Classes, etc. 221
8.1 User-defined types 222
8.2 Classes and members 223
8.3 Interface and implementation 223
8.4 Evolving a class: Date 225
8.5 Enumerations 233
8.6 Operator overloading 236
8.7 Class interfaces 237
Part II: Input and Output
Chapter 9: Input and Output Streams 251
9.1 Input and output 252
9.2 The I/O stream model 253
9.3 Files 254
9.4 I/O error handling 258
9.5 Reading a single value 261
9.6 User-defined output operators 266
9.7 User-defined input operators 266
9.8 A standard input loop 267
9.9 Reading a structured file 269
9.10 Formatting 276
9.11 String streams 283
Chapter 10: A Display Model 289
10.1 Why graphics? 290
10.2 A display model 290
10.3 A first example 292
10.4 Using a GUI library 295
10.5 Coordinates 296
10.6 Shapes 297
10.7 Using Shape primitives297
10.8 Getting the first example to run 309
Chapter 11: Graphics Classes 315
11.1 Overview of graphics classes 316
11.2 Point and Line 317
11.3 Lines 320
11.4 Color 323
11.5 Line_style 325
11.6 Polylines 328
11.7 Closed shapes 333
11.8 Text 346
11.9 Mark 348
11.10 Image 350
Chapter 12: Class Design 355
12.1 Design principles 356
12.2 Shape 360
12.3 Base and derived classes 367
12.4 Other Shape functions 375
12.5 Benefits of object-oriented programming 376
Chapter 13: Graphing Functions and Data 381
13.1 Introduction 382
13.2 Graphing simple functions 382
13.3 Function 386
13.4 Axis 390
13.5 Approximation 392
13.6 Graphing data 397
Chapter 14: Graphical User Interfaces 409
14.1 User-interface alternatives 410
14.2 The Next button 411
14.3 A simple window 412
14.4 Button and other Widgets 414
14.5 An example: drawing lines 419
14.6 Simple animation 426
14.7 Debugging GUI code 427
Part III: Data and Algorithms
Chapter 15: Vector and Free Store 435
15.1 Introduction 436
15.2 vector basics 437
15.3 Memory, addresses, and pointers 439
15.4 Free store and pointers 442
15.5 Destructors 447
15.6 Access to elements 451
15.7 An example: lists 452
15.8 The this pointer 456
Chapter 16: Arrays, Pointers, and References 463
16.1 Arrays 464
16.2 Pointers and references468
16.3 C-style strings 471
16.4 Alternatives to pointer use 472
16.5 An example: palindromes 475
Chapter 17: Essential Operations 483
17.1 Introduction 484
17.2 Access to elements 484
17.3 List initialization 486
17.4 Copying and moving 488
17.5 Essential operations 495
17.6 Other useful operations500
17.7 Remaining Vector problems 502
17.8 Changing size 504
17.9 Our Vector so far 509
Chapter 18: Templates and Exceptions 513
18.1 Templates 514
18.2 Generalizing Vector 522
18.3 Range checking and exceptions 525
18.4 Resources and exceptions 529
18.5 Resource-management pointers 537
Chapter 19: Containers and Iterators 545
19.1 Storing and processing data 546
19.2 Sequences and iterators552
19.3 Linked lists 555
19.4 Generalizing Vector yet again 560
19.5 An example: a simple text editor 566
19.6 vector, list, and string 572
Chapter 20: Maps and Sets 577
20.1 Associative containers 578
20.2 map 578
20.3 unordered_map 585
20.4 Timing 586
20.5 set 589
20.6 Container overview 591
20.7 Ranges and iterators 597
Chapter 21: Algorithms 603
21.1 Standard-library algorithms 604
21.2 Function objects 610
21.3 Numerical algorithms 614
21.4 Copying 619
21.5 Sorting and searching 620
Index 625
- Chapter 0: Notes to the Reader
- Chapter 1: Computers, People, and Programming
- Chapter 2: Hello, World!
- Chapter 3: Objects, Types, and Values
- Chapter 4: Computation
- Chapter 5: Errors
- Chapter 6: Writing a Program
- Chapter 7: Completing a Program
- Chapter 8: Technicalities: Functions, etc.
- Chapter 9: Technicalities: Classes, etc
- Chapter 10: Input and Output Streams
- Chapter 11: Customizing Input and Output
- Chapter 12: A Display Model
- Chapter 13: Graphics Classes
- Chapter 14: Graphics Class Design
- Chapter 15: Graphing Functions and Data
- Chapter 16: Graphical User Interfaces
- Chapter 17: Vector and Free Store
- Chapter 18: Vectors and Arrays
- Chapter 19: Vector, Templates, and Exceptions
- Chapter 20: Containers and Iterators
- Chapter 21: Algorithms and Maps
- Chapter 22: Ideals and History
- Chapter 23: Text Manipulation
- Chapter 24: Numerics
- Chapter 25: Embedded Systems Programming
- Chapter 26: Testing
- Chapter 27: The C Programming Language
Preface ix
Chapter 0: Notes to the Reader 1
0.1 The structure of this book 2
0.2 A philosophy of teaching and learning 5
0.3 ISO standard C++ 8
0.4 PPP support 11
0.5 Author biography 13
0.6 Bibliography 13
Part I: The Basics
Chapter 1: Hello, World! 17
1.1 Programs 18
1.2 The classic first program 18
1.3 Compilation 21
1.4 Linking 23
1.5 Programming environments 24
Chapter 2: Objects, Types, and Values 29
2.1 Input 30
2.2 Variables 32
2.3 Input and type 33
2.4 Operations and operators 34
2.5 Assignment and initialization 36
2.6 Names 40
2.7 Types and objects 42
2.8 Type safety 43
2.9 Conversions 44
2.10 Type deduction: auto 46
Chapter 3 Computation 51
3.1 Computation 52
3.2 Objectives and tools 53
3.3 Expressions 55
3.4 Statements 58
3.5 Functions 68
3.6 vector 71
3.7 Language features 77
Chapter 4: Errors! 83
4.1 Introduction 84
4.2 Sources of errors 85
4.3 Compile-time errors 86
4.4 Link-time errors 88
4.5 Run-time errors 89
4.6 Exceptions 94
4.7 Avoiding and finding errors 99
Chapter 5: Writing a Program 115
5.1 A problem 116
5.2 Thinking about the problem 116
5.3 Back to the calculator! 119
5.4 Back to the drawing board 126
5.5 Turning a grammar into code 130
5.6 Trying the first version 136
5.7 Trying the second version 140
5.8 Token streams 142
5.9 Program structure 146
Chapter 6: Completing a Program 151
6.1 Introduction 152
6.2 Input and output 152
6.3 Error handling 154
6.4 Negative numbers 156
6.5 Remainder: % 157
6.6 Cleaning up the code 158
6.7 Recovering from errors164
6.8 Variables 167
Chapter 7: Technicalities: Functions, etc. 179
7.1 Technicalities 180
7.2 Declarations and definitions 181
7.3 Scope 186
7.4 Function call and return 190
7.5 Order of evaluation 206
7.6 Namespaces 209
7.7 Modules and headers 211
Chapter 8: Technicalities: Classes, etc. 221
8.1 User-defined types 222
8.2 Classes and members 223
8.3 Interface and implementation 223
8.4 Evolving a class: Date 225
8.5 Enumerations 233
8.6 Operator overloading 236
8.7 Class interfaces 237
Part II: Input and Output
Chapter 9: Input and Output Streams 251
9.1 Input and output 252
9.2 The I/O stream model 253
9.3 Files 254
9.4 I/O error handling 258
9.5 Reading a single value 261
9.6 User-defined output operators 266
9.7 User-defined input operators 266
9.8 A standard input loop 267
9.9 Reading a structured file 269
9.10 Formatting 276
9.11 String streams 283
Chapter 10: A Display Model 289
10.1 Why graphics? 290
10.2 A display model 290
10.3 A first example 292
10.4 Using a GUI library 295
10.5 Coordinates 296
10.6 Shapes 297
10.7 Using Shape primitives297
10.8 Getting the first example to run 309
Chapter 11: Graphics Classes 315
11.1 Overview of graphics classes 316
11.2 Point and Line 317
11.3 Lines 320
11.4 Color 323
11.5 Line_style 325
11.6 Polylines 328
11.7 Closed shapes 333
11.8 Text 346
11.9 Mark 348
11.10 Image 350
Chapter 12: Class Design 355
12.1 Design principles 356
12.2 Shape 360
12.3 Base and derived classes 367
12.4 Other Shape functions 375
12.5 Benefits of object-oriented programming 376
Chapter 13: Graphing Functions and Data 381
13.1 Introduction 382
13.2 Graphing simple functions 382
13.3 Function 386
13.4 Axis 390
13.5 Approximation 392
13.6 Graphing data 397
Chapter 14: Graphical User Interfaces 409
14.1 User-interface alternatives 410
14.2 The Next button 411
14.3 A simple window 412
14.4 Button and other Widgets 414
14.5 An example: drawing lines 419
14.6 Simple animation 426
14.7 Debugging GUI code 427
Part III: Data and Algorithms
Chapter 15: Vector and Free Store 435
15.1 Introduction 436
15.2 vector basics 437
15.3 Memory, addresses, and pointers 439
15.4 Free store and pointers 442
15.5 Destructors 447
15.6 Access to elements 451
15.7 An example: lists 452
15.8 The this pointer 456
Chapter 16: Arrays, Pointers, and References 463
16.1 Arrays 464
16.2 Pointers and references468
16.3 C-style strings 471
16.4 Alternatives to pointer use 472
16.5 An example: palindromes 475
Chapter 17: Essential Operations 483
17.1 Introduction 484
17.2 Access to elements 484
17.3 List initialization 486
17.4 Copying and moving 488
17.5 Essential operations 495
17.6 Other useful operations500
17.7 Remaining Vector problems 502
17.8 Changing size 504
17.9 Our Vector so far 509
Chapter 18: Templates and Exceptions 513
18.1 Templates 514
18.2 Generalizing Vector 522
18.3 Range checking and exceptions 525
18.4 Resources and exceptions 529
18.5 Resource-management pointers 537
Chapter 19: Containers and Iterators 545
19.1 Storing and processing data 546
19.2 Sequences and iterators552
19.3 Linked lists 555
19.4 Generalizing Vector yet again 560
19.5 An example: a simple text editor 566
19.6 vector, list, and string 572
Chapter 20: Maps and Sets 577
20.1 Associative containers 578
20.2 map 578
20.3 unordered_map 585
20.4 Timing 586
20.5 set 589
20.6 Container overview 591
20.7 Ranges and iterators 597
Chapter 21: Algorithms 603
21.1 Standard-library algorithms 604
21.2 Function objects 610
21.3 Numerical algorithms 614
21.4 Copying 619
21.5 Sorting and searching 620
Index 625
Chapter 0: Notes to the Reader 1
0.1 The structure of this book 2
0.2 A philosophy of teaching and learning 5
0.3 ISO standard C++ 8
0.4 PPP support 11
0.5 Author biography 13
0.6 Bibliography 13
Part I: The Basics
Chapter 1: Hello, World! 17
1.1 Programs 18
1.2 The classic first program 18
1.3 Compilation 21
1.4 Linking 23
1.5 Programming environments 24
Chapter 2: Objects, Types, and Values 29
2.1 Input 30
2.2 Variables 32
2.3 Input and type 33
2.4 Operations and operators 34
2.5 Assignment and initialization 36
2.6 Names 40
2.7 Types and objects 42
2.8 Type safety 43
2.9 Conversions 44
2.10 Type deduction: auto 46
Chapter 3 Computation 51
3.1 Computation 52
3.2 Objectives and tools 53
3.3 Expressions 55
3.4 Statements 58
3.5 Functions 68
3.6 vector 71
3.7 Language features 77
Chapter 4: Errors! 83
4.1 Introduction 84
4.2 Sources of errors 85
4.3 Compile-time errors 86
4.4 Link-time errors 88
4.5 Run-time errors 89
4.6 Exceptions 94
4.7 Avoiding and finding errors 99
Chapter 5: Writing a Program 115
5.1 A problem 116
5.2 Thinking about the problem 116
5.3 Back to the calculator! 119
5.4 Back to the drawing board 126
5.5 Turning a grammar into code 130
5.6 Trying the first version 136
5.7 Trying the second version 140
5.8 Token streams 142
5.9 Program structure 146
Chapter 6: Completing a Program 151
6.1 Introduction 152
6.2 Input and output 152
6.3 Error handling 154
6.4 Negative numbers 156
6.5 Remainder: % 157
6.6 Cleaning up the code 158
6.7 Recovering from errors164
6.8 Variables 167
Chapter 7: Technicalities: Functions, etc. 179
7.1 Technicalities 180
7.2 Declarations and definitions 181
7.3 Scope 186
7.4 Function call and return 190
7.5 Order of evaluation 206
7.6 Namespaces 209
7.7 Modules and headers 211
Chapter 8: Technicalities: Classes, etc. 221
8.1 User-defined types 222
8.2 Classes and members 223
8.3 Interface and implementation 223
8.4 Evolving a class: Date 225
8.5 Enumerations 233
8.6 Operator overloading 236
8.7 Class interfaces 237
Part II: Input and Output
Chapter 9: Input and Output Streams 251
9.1 Input and output 252
9.2 The I/O stream model 253
9.3 Files 254
9.4 I/O error handling 258
9.5 Reading a single value 261
9.6 User-defined output operators 266
9.7 User-defined input operators 266
9.8 A standard input loop 267
9.9 Reading a structured file 269
9.10 Formatting 276
9.11 String streams 283
Chapter 10: A Display Model 289
10.1 Why graphics? 290
10.2 A display model 290
10.3 A first example 292
10.4 Using a GUI library 295
10.5 Coordinates 296
10.6 Shapes 297
10.7 Using Shape primitives297
10.8 Getting the first example to run 309
Chapter 11: Graphics Classes 315
11.1 Overview of graphics classes 316
11.2 Point and Line 317
11.3 Lines 320
11.4 Color 323
11.5 Line_style 325
11.6 Polylines 328
11.7 Closed shapes 333
11.8 Text 346
11.9 Mark 348
11.10 Image 350
Chapter 12: Class Design 355
12.1 Design principles 356
12.2 Shape 360
12.3 Base and derived classes 367
12.4 Other Shape functions 375
12.5 Benefits of object-oriented programming 376
Chapter 13: Graphing Functions and Data 381
13.1 Introduction 382
13.2 Graphing simple functions 382
13.3 Function 386
13.4 Axis 390
13.5 Approximation 392
13.6 Graphing data 397
Chapter 14: Graphical User Interfaces 409
14.1 User-interface alternatives 410
14.2 The Next button 411
14.3 A simple window 412
14.4 Button and other Widgets 414
14.5 An example: drawing lines 419
14.6 Simple animation 426
14.7 Debugging GUI code 427
Part III: Data and Algorithms
Chapter 15: Vector and Free Store 435
15.1 Introduction 436
15.2 vector basics 437
15.3 Memory, addresses, and pointers 439
15.4 Free store and pointers 442
15.5 Destructors 447
15.6 Access to elements 451
15.7 An example: lists 452
15.8 The this pointer 456
Chapter 16: Arrays, Pointers, and References 463
16.1 Arrays 464
16.2 Pointers and references468
16.3 C-style strings 471
16.4 Alternatives to pointer use 472
16.5 An example: palindromes 475
Chapter 17: Essential Operations 483
17.1 Introduction 484
17.2 Access to elements 484
17.3 List initialization 486
17.4 Copying and moving 488
17.5 Essential operations 495
17.6 Other useful operations500
17.7 Remaining Vector problems 502
17.8 Changing size 504
17.9 Our Vector so far 509
Chapter 18: Templates and Exceptions 513
18.1 Templates 514
18.2 Generalizing Vector 522
18.3 Range checking and exceptions 525
18.4 Resources and exceptions 529
18.5 Resource-management pointers 537
Chapter 19: Containers and Iterators 545
19.1 Storing and processing data 546
19.2 Sequences and iterators552
19.3 Linked lists 555
19.4 Generalizing Vector yet again 560
19.5 An example: a simple text editor 566
19.6 vector, list, and string 572
Chapter 20: Maps and Sets 577
20.1 Associative containers 578
20.2 map 578
20.3 unordered_map 585
20.4 Timing 586
20.5 set 589
20.6 Container overview 591
20.7 Ranges and iterators 597
Chapter 21: Algorithms 603
21.1 Standard-library algorithms 604
21.2 Function objects 610
21.3 Numerical algorithms 614
21.4 Copying 619
21.5 Sorting and searching 620
Index 625