Starting Out with C++ from Control Structures through Objects, Global Edition

Tony Gaddis  
Total pages
November 2018
Related Titles


A clear and student-friendly way to teach the fundamentals of C++

Starting Out with C++: From Control Structures through Objects covers control structures, functions, arrays, and pointers before objects and classes in Tony Gaddis’s hallmark accessible, step-by-step presentation.

His books help beginning students understand the important details necessary to become skilled programmers at an introductory level. Gaddis motivates the study of both programming skills and the C++ programming language by presenting all the details needed to understand the “how” and the “why”–but never losing sight of the fact that most beginners struggle with this material. His approach is gradual and highly accessible, ensuring that students understand the logic behind developing high-quality programs. As with all Gaddis texts, clear and easy-to-read code listings, concise and practical real-world examples, and an abundance of exercises appear in every chapter. Updates to the 9th Edition include revised, improved problems throughout and a new chapter featuring completely rewritten and expanded material on the Standard Template Library (STL).


  • Written with clear, easy-to-understand language, and rich with example programs that are concise, practical, and real-world oriented.
  • The hundreds of Example Programs in the text are designed to highlight the topic currently being studied. Source code for these programs is provided so that students can run the programs themselves.
  • Students not only learn how to implement the features and constructs of C++, but why and when to use them.
  • Teaches C++ in a step-by-step fashion. Each chapter covers a major set of topics and builds knowledge as the student progresses through the book but still allows for flexibility past Chapter 7.
  • The material on the Standard Template Library (STL) has been completely rewritten and expanded into its own chapter.
  • Concept Statements, Checkpoints, Notes, and Warnings throughout the book all call out important pieces of information for the student
  • Program Output is a sample of its screen output shown after each example program. This immediately shows the student how the program should function.
  • In the Spotlight sections provides a programming problem and a detailed, step by step analysis showing the student how to solve it.
  • C++ Quick Reference Guide is printed on the last two pages of Appendix C in the book to provide a quick, easy reference to the C++ language.
  • C++11 language features are introduced throughout the text with C++11 icons identifying the new features.
  • Case studies that simulate real-world applications appear in many chapters throughout the text. These case studies are designed to highlight the major topics of the chapter in which they appear.

New to this Edition

About the Book

  • The material on the Standard Template Library (STL) has been completely rewritten and expanded into its own chapter. Previously, Chapter 16 covered exceptions, templates, and covered the STL briefly. In this edition, Chapter 16 covers exceptions and templates, and Chapter 17 is a new chapter dedicated to the STL. The new chapter covers the following topics:
    • The array and vector classes
    • The various types of iterators
    • Emplacement versus insertion
    • The map, multimap, and unordered_map Classes
    • The set, multiset, and unordered_set Classes
    • Sorting and searching algorithms
    • Permutation algorithms
    • Set algorithms
    • Using function pointers with STL algorithms
    • Function objects, or functors
    • Lambda expressions
  • Chapter 2 now includes a discussion of alternative forms of variable initialization, including functional notation, and brace notation (also known as uniform initialization).
  • Chapter 3 now mentions the round function, introduced in C++ 11.
  • Chapter 7 now introduces array initialization much earlier.
  • In Chapter 8, the bubble sort algorithm has been rewritten and improved.
  • A new example of sorting and searching a vector of strings has been added to Chapter 8.
  • In Chapter 9, the section on smart pointers now gives an overview of shared_ptrs and weak_ptrs, in addition to the existing coverage of unique_ptrs.
  • In Chapter 10, a new In the Spotlight section on string tokenizing has been added.
  • Chapter 10 now covers the string-to-number conversion functions that were introduced in C++ 11.
  • The material on unions that previously appeared in Chapter 11 has been moved to Appendix K, available on the book’s companion Website.
  • Chapter 13 has new sections covering:
    • Member initialization lists.
    • In-place initialization.
    • Constructor delegation.
  • Several new topics were added to Chapter 14, including:
    • Rvalue references and move semantics.
    • Checking for self-assignment when overloading the = operator.
    • Using member initialization lists in aggregate classes.
  • Chapter 15 includes a new section on constructor inheritance.
  • Several new programming problems have been added throughout the book.

MyLabTM Programming is not included. Students, if MyLab Programming is a recommended/mandatory component of the course, please ask your instructor for the correct ISBN and course ID. MyLab Programming should only be purchased when required by an instructor. Instructors, contact your Pearson rep for more information.

  • UPDATED! User Interface provides a new streamlined interface based on experienced user feedback. Course creation, configuration, and navigation are now easier than ever.
  • EXPANDED! Exercise Editor now allows you to easily create new programming exercises. In addition to assigning the hundreds of programming exercises already available in MyProgrammingLab, you can create and assign programming exercises to customize your course.
  • UPDATED! VideoNotes Tutorials provide step-by-step video tutorials specifically designed to enhance the programming concepts presented in Starting Out with C++: From Control Structures through Objects. Students can view the entire problem-solving process outside of the classroom—when they need help the most.
  • The Plagiarism Detection Tool alerts instructors of potential plagiarism issues by checking:
    • Students’ average submission rate
    • Students’ average number of attempts u

Table of Contents

  • 1. Introduction to Computers and Programming
  • 2. Introduction to C++
  • 3. Expressions and Interactivity
  • 4. Making Decisions
  • 5. Loops and Files
  • 6. Functions
  • 7. Arrays and Vectors
  • 8. Searching and Sorting Arrays
  • 9. Pointers
  • 10. Characters, C-Strings, and More about the string Class
  • 11. Structured Data
  • 12. Advanced File Operations
  • 13. Introduction to Classes
  • 14. More about Classes
  • 15. Inheritance, Polymorphism, and Virtual Functions
  • 16. Exceptions and Templates
  • 17. The Standard Template Library
  • 18. Linked Lists
  • 19. Stacks and Queues
  • 20. Recursion
  • 21. Binary Trees
  • Appendix A: The ASCII Character Set
  • Appendix B: Operator Precedence and Associativity
  • Quick References