For Introduction to Programming (CS1) and other more intermediate courses covering programming in C++. Also appropriate as a supplement for upper-level courses where the instructor uses a book as a reference for the C++ language.

This best-selling comprehensive text is aimed at readers with little or no programming experience. It teaches programming by presenting the concepts in the context of full working programs and takes an early-objects approach. The authors emphasize achieving program clarity through structured and object-oriented programming, software reuse and component-oriented software construction. The Seventh Edition encourages students to connect computers to the community, using the Internet to solve problems and make a difference in our world. All content has been carefully fine-tuned in response to a team of distinguished academic and industry reviewers.

Table of Contents

1 Introduction to Computers, the Internet and the World Wide Web 1
2 Introduction to C++ Programming 39
3 Introduction to Classes and Objects 68
4 Control Statements: Part 1 109
5 Control Statements: Part 2 163
6 Functions and an Introduction to Recursion 207
7 Arrays and Vectors 282
8 Pointers 345
9 Classes: A Deeper Look, Part 1 395
10 Classes: A Deeper Look, Part 2 429
11 Operator Overloading 466
12 Object-Oriented Programming: Inheritance 521
13 Object-Oriented Programming: Polymorphism 572
14 Templates 626
15 Stream Input/Output 645
16 Exception Handling 683
17 File Processing 713
18 Class string and String Stream Processing 755
19 Searching and Sorting 784
20 Data Structures 806
21 Bits, Characters, C Strings and structs 852
22 Standard Template Library (STL) 916 23 Boost Libraries, Technical Report 1 and C++0x I
24 Other Topics XL
25 ATM Case Study, Part 1: Object-Oriented Design with the UML LXVII
26 ATM Case Study, Part 2: Implementing an Object-Oriented Design CIX
27 Game Programming with Ogre CLVIII
A Operator Precedence and Associativity 1006
B ASCII Character Set 1008
C Fundamental Types 1009
D Number Systems 1011
E Preprocessor 1024
Appendices on the Web 1036