Absolute C++ is the definitive textbook on C++ from best-selling author Walt Savich. This brand new book provides complete, thorough, absolute coverage of the C++ programming language.
Absolute C++ provides all of the tools necessary for experienced and novice programmers alike to master C++, emphasizing the qualities and complexities of the language aver elementary programming technique. Thus, it presents:
Complete and fully executable programs throughout to demonstrate language features
Extensive coverage of the Standard Template Library (STL)—this is a necessary element in understanding C++ as it examines the full functionality and versatility of the language
A logical ordering of topics that allows readers to better understand the language (for example, covering arrays before classes-this institutes a more progressive method of learning how the language works before moving on to advanced features
Material on the Unified Modeling Language (UML) and Patterns to take advantage of the latest trends in software engineering
Sections highlighting programming tips and common pitfalls to enhance understanding
Absolute C++ also offers a full supplements package for instructors, including instructor’s manual, solutions manual, PowerPoint slides, and Testfen, a computerized test generator. A companion web site (www.aw.com/savitch) is available for all readers to help enhance and test their understanding of the material.
Excerpt. © Reprinted by permission. All rights reserved.
This book is designed to be a textbook and reference for programming in the C++ language. Although it does include programming techniques, it is organized around the features of the C++ language rather than any particular curriculum of programming techniques. The main audience I had in mind when writing this book was undergraduate students who have not had extensive programming experience with the C++ language. As such, it would be a suitable C++ text or reference for a second or later computer science course that uses C++; it could even be used for a first programming course. This book is designed to accommodate a wide range of users. The beginning chapters are written at a level that is accessible to beginners, while the boxed sections of those chapters serve to quickly introduce more experienced programmers to basic C++ syntax. Later chapters are still designed to be accessible, but are written at a level suitable for students who have progressed to these more advanced topics. (For those who want a beginning textbook with more pedagogical material and more on very basic programming technique, I suggest another book I wrote that is more along these lines.)
This book also includes an introduction to patterns and the Unified Modeling Language (UML). Since many computer science curricula postpone recursions to a second computer science course, the book includes a full chapter on recursion.
The C++ coverage in this book is very complete, going well beyond what a beginner needs to know. In particular, there is extensive coverage of inheritance, polymorphism, and exception handling in C++. There is also extensive material on the Standard Template Library (STL), as well as an introduction to patterns and the Unified Modeling Language (UML). Since many computer science curricula postpone recursion to a second computer science course, the book includes a full chapter on recursion.
ANSI/ISO C++ STANDARD
This book was written to conform to the new ANSI/ISO C++ standard.
STANDARD TEMPLATE LIBRARY
The Standard Template Library is an extensive library collection of preprogrammed data structure classes and important algorithms. The STL is perhaps as big a topic as the core C++ language. This book contains a very substantial introduction to the STL. There is a full chapter on the general topic of templates and a full chapter on the particulars of the STL, as well as other material on or related to the STL at other points in the text.
This book is organized around the structure of the C++ language. As such, the earlier chapters, which cover aspects of C++ that are common to almost all high-level programming languages, are not particularly oriented toward object-oriented programming (OOP). This makes sense for a reference book and a book for learning a second language. However, I do consider C++ to be an OOP language. If you are really programming in C++ and not C, then you must avail yourself of the OOP features of C++. This book gives extensive coverage of encapsulation, inheritance, and polymorphism as realized in the C++ language. The final chapter on patterns and UML gives additional coverage of OOP-related material.
FLEXIBILITY IN TOPIC ORDERING
This book allows instructors wide latitude in reordering the material. This is important if a book is to serve as a reference. It is also in keeping with my philosophy of writing books that accommodate themselves to an instructor’s style, rather than being the instructor to an author’s personal preference of topic ordering. With this in mind, each chapter introduction explains what material must be covered before doing each section of the chapter.
ACCESSIBLE TO STUDENTS
It is not enough for a book to present the right topics in the right order. It is not even enough for it be clear and correct when read by an instructor or other expert. The material needs to be presented in a way that is accessible to the person who does not yet know the material. Like my other textbooks that have proved to be very popular with students, this book was written to be friendly and accessible to the student.
Each major point is summarized in a boxed section. These boxed sections are spread throughout each chapter. They serve as summaries of the material, as a quick reference source, and a way to quickly learn the C++ syntax for features the reader knows about in general but for which he or she needs to know the C++ particulars.
Each chapter contains numerous Self-Test Exercises at strategic points in the chapter. Complete answers for all the Self-Test Exercises are given at the end of each chapter.
Pitfall sections, programming technique sections, and examples of complete programs with sample I/O are given throughout each chapter. Each chapter ends with a summary section and a collection of programming projects suitable to assign to students.
Each book comes with a free copy of the Microsoft Visual C++ 6.0 Introductory Edition. In addition, the following supplements are available on the book’s companion website at http://www.aw.com/savitch/:
Source code from the book
The following resources are available to qualified instructors only. Please contact your local sales representative or send e-mail to firstname.lastname@example.org for access information:
Numerous individuals have contributed invaluable help and support in making this book happen. Frank Ruggirello and my editor Susan Hartman at Addison-Wesley are the ones who first conceived of the idea for this book. Susan Hartman, Galia Shokry, Lisa Kalner, and the other fine people at Addison-Wesley were a continuing source of support and encouragement in getting the book reviewed, revised, and out the door.
Cindy Kogut did an incredibly thorough job of copyediting. Sally Boylan and others at Argosy Publishing did great work under rushed conditions in converting the manuscript to typeset pages.
David Teague deserves special acknowledgment. I very much appreciate his hard work, good insights, and careful researching for this book.
I thank my good friend Mario Lopez for the many helpful conversations we had about C++.
The following reviewers provided corrections and suggestions that contributed greatly to the final product. I thank them all. In random order they are Kenrick Mock, University of Alaska, Anchorage; Richard Albright, University of Delaware; H. E. Dunsmore, Purdue University; Christopher E. Cramer; Drue Coles, Boston University; Evan Golub, University of Maryland; Stephen Corbesero, Moravian College; Fredrick H. Colclough, Colorado Technical University; Joel Weinstein, Northeastern University; Stephen P Leach, Florida State University; Alvin S. Lim, Auburn University; and Martin Dulberg, North Carolina State University.
I again thank David Teague-this time for his excellent work in preparing the instructor’s guide.
Finally, I thank Christina for putting up with my working late on the book and even offering encouragement instead of complaining.