Problem Solving with C++, 4e is a revision of one of the leading books for courses introducing programming in C++. The text explains C++ and basic programming techniques in a way suitable for beginning students. This book adapts to the syllabus created by the instructor rather than making you adapt to the book. The order in which the chapters and sections are covered can easily be changed without loss of continuity in reading the text.
The book teaches students how to define their own classes, while ensuring a solid understanding of basic tools such as simple control structures and function definitions. A measured approach is taken toward classes, teaching students how to write simple classes at first, then constructors are added, then overloading simple operators, then overloading the I/O operators <<<< and >>>>, and so forth. By defining their own classes early, students are getting a hands-on experience not provided by those texts that merely teach how to use classes in the beginning.
Walter Savitch is a professor of computer science at the University of California, San Diego, where he has been one of the main designers of the computer science curriculum. A well-known and respected author and educator, he has most recently written Problem Solving with C++: The Object of Programming, Third Edition and Data Structures and Other Objects Using C++, Second Edition (with Michael Main).
Prof. Savitch has long been heralded by instructors and students alike for his engaging and accessible writing style. Absolute C++ will continue to benefit from these talents and earn more praise as it caters to the needs of everyone in the classroom.
(Each Chapter concludes with a "Chapter Summary," "Answers to Self-Test Exercises," and "Programming Projects.")1. Introduction to Computers and C++ Programming.
Programming and Problem Solving.
Introduction to C++.
Testing and Debugging.2. C++ Basics.
Variables and Assignments.
Input and Output.
Data Types and Expressions.
Simple Flow of Control.
Program Style.3. Functions that Return a Value.
Overloading Function Names.4. Functions for All Subtasks.
Using Procedural Abstraction.5. I/O Streams as an Introduction to Objects and Classes.
Streams and Basic File I/O.
Tools for Stream I/O.
Inheritance.6. Defining Classes.
Abstract Data Types.7. More Flow of Control.
Using Boolean Expressions.
Designing Loops.8. Friends and Overload Operators.
Overloading Operators.9. Separate Compilation and Namespaces.
Introduction to Arrays.
Arrays in Functions.
Programming with Arrays.
Arrays and Classes.
Multidimensional Arrays.11. Strings and Vectors.
An Array Type for Strings.
Vectors.12. Pointers and Dynamic Arrays.
Classes and Dynamic Arrays.13. Recursion.
Recursive Functions for Tasks.
Recursive Functions for Values.
Thinking Recursively.14. Templates.
Templates of Algorithm Abstraction.
Syntax for Class Templates.15. Pointers and Linked Lists.
Nodes and Linked Lists.
A Linked List Application.16. Inheritance.
Polymorphism.17. Exception Handling.
Exception Handling Basics.
Programming Techniques for Exception Handling.Appendices.
Appendix 1. C++ Keywords.
Appendix 2. Precedence of Operators.
Appendix 3. ASCII Character Set.
Appendix 4. Some Library Functions.
Appendix 5. The Assert Statement.
Appendix 6. Inline Functions.
Appendix 7. Overloading the Array Index Square Brackets.
Appendix 8. The This Pointer.
Appendix 9. Overloading Operators as Member Operators.