Starting Out with C++: From Control Structures Through Objects / Edition 6

Other Format (Print)
Rent from
(Save 83%)
Est. Return Date: 09/08/2014
Buy Used
Buy Used from
(Save 34%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $6.49
Usually ships in 1-2 business days
(Save 95%)
Other sellers (Other Format)
  • All (13) from $6.49   
  • New (2) from $175.00   
  • Used (11) from $6.49   
Sort by
Page 2 of 2
Showing 11 – 11 of 11 (2 pages)
Note: Marketplace items are not eligible for any coupons and promotions
Seller since 2009

Feedback rating:



New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

Ships same day or next business day! UPS expedited shipping available (Priority Mail for AK/HI/APO/PO Boxes). Used sticker & some writing and/or highlighting. Used books may not ... include working access code or dust jacket Read more Show Less

Ships from: Columbia, MO

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 2 of 2
Showing 11 – 11 of 11 (2 pages)
Sort by


Tony Gaddis’s accessible, step-by-step presentation helps 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 both gradual and highly accessible, ensuring that students understand the logic behind developing high-quality programs.

In Starting Out with C++: From Control Structures through Objects, Gaddis covers control structures, functions, arrays, and pointers before objects and classes. 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. This text is intended for either a one-semester accelerated introductory course or a traditional two-semester sequence covering C++ programming.

Read More Show Less

Product Details

  • ISBN-13: 9780321545886
  • Publisher: Addison Wesley
  • Publication date: 4/11/2008
  • Series: Pearson Custom Computer Science Series
  • Edition description: Older Edition
  • Edition number: 6
  • Pages: 1200
  • Product dimensions: 7.99 (w) x 9.93 (h) x 1.54 (d)

Meet the Author

Tony Gaddis is the lead author of the Starting Out with series including Starting Out with Alice, C++, Java™, Visual Basic® 2008, Programming Logic & Design, and Python. Visit the Gaddis Books website for more information on Gaddis’ titles. Gaddis teaches computer science courses at Haywood Community College in North Carolina. He previously taught programming for several corporations and government agencies, including NASA's Kennedy Space Center. Gaddis is a highly acclaimed instructor who was selected as the North Carolina Community College "Teacher of the Year" in 1994, and who received the Teaching Excellence award from the National Institute for Staff and Organizational Development in 1997.
Read More Show Less

Table of Contents

Chapter 1 Introduction to Computers and Programming
1.1 Why Program?
1.2 Computer Systems: Hardware and Software
1.3 Programs and Programming Languages
1.4 What Is a Program Made of?
1.5 Input, Processing, and Output
1.6 The Programming Process
1.7 Procedural and Object-Oriented Programming

Chapter 2 Introduction to C++
2.1 The Parts of a C++ Program
2.2 The cout Object
2.3 The #include Directive
2.4 Variables and Literals
2.5 Identifiers
2.6 Integer Data Types
2.7 The char Data Type
2.8 Floating-Point Data Types
2.9 The bool Data Type
2.10 Determining the Size of a Data Type
2.11 Variable Assignments and Initialization
2.12 Scope
2.13 Arithmetic Operators
2.15 Focus on Software Engineering: Programming Style
2.16 If You Plan to Continue in Computer Science: Standard and Prestandard C++

Chapter 3 Expressions and Interactivity
3.1 The cin Object
3.2 Mathematical Expressions
3.3 When You Mix Apples and Oranges: Type Conversion
3.4 Overflow and Underflow
3.5 Type Casting
3.6 Named Constants
3.7 Multiple Assignment and Combined Assignment
3.8 Formatting Output
3.9 Formatted Input
3.10 Focus on Object-Oriented Programming: More About Member Functions
3.11 More Mathematical Library Functions
3.12 Focus on Debugging: Hand Tracing a Program
3.13 Focus on Problem Solving: A Case Study
3.14 Introduction to File Input and Output

Chapter 4 Making Decisions
4.1 Relational Operators
4.2 The if Statement
4.3 Flags
4.4 Expanding the if Statement
4.5 The if/else Statement
4.6 The if/else if Statement
4.7 Using a Trailing else
4.8 Menus
4.9 Focus on Software Engineering: Nested if Statements
4.10 Logical Operators
4.11 Checking Numeric Ranges with Logical Operators
4.12 Focus on Software Engineering: Validating User Input
4.13 More About Variable Definitions and Scope
4.14 Comparing Strings
4.15 The Conditional Operator
4.16 The switch Statement
4.17 Testing for File Open Errors

Chapter 5 Looping
5.1 The Increment and Decrement Operators
5.2 Introduction to Loops: The while Loop
5.3 Using the while Loop for Input Validation
5.4 Counters
5.5 The do-while Loop
5.6 The for Loop
5.7 Keeping a Running Total
5.8 Sentinels
5.9 Using a Loop to Read Data from a File
5.10 Focus on Software Engineering: Deciding Which Loop to Use
5.11 Nested Loops
5.12 Breaking Out of a Loop
5.13 The continue Statement

Chapter 6 Functions
6.1 Focus on Software Engineering: Modular Programming
6.2 Defining and Calling Functions
6.3 Function Prototypes
6.4 Sending Data into a Function
6.5 Passing Data by Value
6.6 Focus on Software Engineering: Using Functions in a Menu-Driven Program
6.7 The return Statement
6.8 Returning a Value from a Function
6.9 Returning a Boolean Value
6.10 Local and Global Variables
6.11 Static Local Variables
6.12 Default Arguments
6.13 Using Reference Variables as Parameters
6.14 Overloading Functions
6.15 The exit() Function
6.16 Stubs and Drivers

Chapter 7 Arrays
7.1 Arrays Hold Multiple Values
7.2 Accessing Array Elements
7.3 No Bounds Checking in C++
7.4 Array Initialization
7.5 Processing Array Contents
7.6 Focus on Software Engineering: Using Parallel Arrays
7.7 Arrays as Function Arguments
7.8 Two-Dimensional Arrays
7.9 Arrays of Strings
7.10 Arrays with Three or More Dimensions
7.11 Focus on Problem Solving and Program Design: A Case Study
7.12 If You Plan to Continue in Computer Science: Introduction to the STL vector

Chapter 8 Searching and Sorting Arrays
8.1 Focus on Software Engineering: Introduction to Search Algorithms
8.2 Focus on Problem Solving and Program Design: A Case Study
8.3 Focus on Software Engineering: Introduction to Sorting Algorithms
8.4 Focus on Problem Solving and Program Design: A Case Study
8.5 If You Plan to Continue in Computer Science: Sorting and Searching vectors

Chapter 9 Pointers
9.1 Getting the Address of a Variable
9.2 Pointer Variables
9.3 The Relationship Between Arrays and Pointers
9.4 Pointer Arithmetic
9.5 Initializing Pointers
9.6 Comparing Pointers
9.7 Pointers as Function Parameters
9.8 Focus on Software Engineering: Dynamic Memory Allocation
9.9 Focus on Software Engineering: Returning Pointers from Functions
9.10 Focus on Problem Solving and Program Design: A Case Study

Chapter 10 Characters, Strings, and the string Class
10.1 Character Testing
10.2 Character Case Conversion
10.3 Review of the Internal Storage of C-Strings
10.4 Library Functions for Working with C-Strings
10.5 String/Numeric Conversion Functions
10.6 Focus on Software Engineering: Writing Your Own C-String-Handling Functions
10.7 The C++ string Class
10.8 Focus on Problem Solving and Program Design: A Case Study

Chapter 11 Structured Data
11.1 Abstract Data Types
11.2 Focus on Software Engineering: Combining Data into Structures
11.3 Accessing Structure Members
11.4 Initializing a Structure
11.5 Arrays of Structures
11.6 Focus on Software Engineering: Nested Structures
11.7 Structures as Function Arguments
11.8 Returning a Structure from a Function
11.9 Pointers to Structures
11.10 Focus on Software Engineering: When to Use.,When to Use ->, and When to Use *
11.11 Unions
11.12 Enumerated Data Types

Chapter 12 Advanced File Operations
12.1 File Operations
12.2 File Output Formatting
12.3 Passing File Stream Objects to Functions
12.4 More Detailed Error Testing
12.5 Member Functions for Reading and Writing Files
12.6 Focus on Software Engineering: Working with Multiple Files
12.7 Binary Files
12.8 Creating Records with Structures
12.9 Random-Access Files
12.10 Opening a File for Both Input and Output

Chapter 13 Introduction to Classes
13.1 Procedural and Object-Oriented Programming
13.2 Introduction to Classes
13.3 Defining an Instance of a Class
13.4 Why Have Private Members?
13.5 Focus on Software Engineering: Separating Class Specification from Implementation
13.6 Inline Member Functions
13.7 Constructors
13.8 Passing Arguments to Constructors
13.9 Destructors
13.10 Overloading Constructors
13.11 Private Member Functions
13.12 Arrays of Objects
13.13 Focus on Problem Solving and Program Design: An OOP Case Study
13.14 Focus on Object-Oriented Programming: Creating an Abstract Array Data Type
13.15 Focus on Object-Oriented Design: The Unified Modeling Language (UML)
13.16 Focus on Object-Oriented Design: Finding the Classes and Their Responsibilities

Chapter 14 More About Classes
14.1 Instance and Static Members
14.2 Friends of Classes
14.3 Memberwise Assignment
14.4 Copy Constructors
14.5 Operator Overloading
14.6 Object Conversion
14.7 Aggregation
14.8 Focus on Object-Oriented Design: Class Collaborations

Chapter 15 Inheritance, Polymorphism, and Virtual Functions
15.1 What Is Inheritance?
15.2 Protected Members and Class Access
15.3 Constructors and Destructors in Base and Derived Classes
15.4 Redefining Base Class Functions
15.5 Class Hierarchies
15.6 Polymorphism and Virtual Member Functions
15.7 Abstract Base Classes and Pure Virtual Functions
15.8 Multiple Inheritance

Chapter 16 Exceptions, Templates, and the Standard Template Library (STL)
16.1 Exceptions
16.2 Function Templates
16.3 Focus on Software Engineering: Where to Start When Defining Templates
16.4 Class Templates
16.5 Introduction to the Standard Template Library (STL)

Chapter 17 Linked Lists
17.1 Introduction to the Linked List ADT
17.2 Linked List Operations
17.3 A Linked List Template
17.4 Variations of the Linked List
17.5 The STL list Container

Chapter 18 Stacks and Queues
18.1 Introduction to the Stack ADT
18.2 Dynamic Stacks
18.3 The STL stack Container
18.4 Introduction to the Queue ADT
18.5 Dynamic Queues
18.6 The STL deque and queue Containers

Chapter 19 Recursion
19.1 Introduction to Recursion
19.2 Solving Problems with Recursion
19.3 Focus on Problem Solving and Program Design: The Recursive gcd Function
19.4 Focus on Problem Solving and Program Design: Solving Recursively Defined Problems
19.5 Focus on Problem Solving and Program Design: Recursive Linked List Operations
19.6 Focus on Problem Solving and Program Design: A Recursive Binary Search Function
19.7 The Towers of Hanoi
19.8 Focus on Problem Solving and Program Design: The QuickSort Algorithm
19.9 Exhaustive Algorithms
19.10 Focus on Software Engineering: Recursion vs. Iteration

Chapter 20 Binary Trees
20.1 Definition and Applications of Binary Trees
20.2 Binary Search Tree Operations
20.3 Template Considerations for Binary Search Trees

Appendix A: The ASCII Character Set Appendix B: Operator Precedence and Associativity


Student CD
The following appendices are on the accompanying Student CD.
Appendix C: Introduction to Flowcharting Appendix D: Using UML in Class Design Appendix E: Namespaces Appendix F: Writing Managed C++ Code for the .NET Framework Appendix G: Passing Command Line Arguments Appendix H: Header File and Library Function Reference Appendix I: Binary Numbers and Bitwise Operations Appendix J: Multi-Source File Programs Appendix K: Stream Member Functions for Formatting Appendix L: Installing and Using Borland C++ Builder 6
Appendix M: Introduction to Microsoft Visual C++ 2005 Express Edition Appendix N: Answers to Checkpoints Appendix O: Answers to Odd-Numbered Review Questions

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 8 Customer Reviews
  • Posted February 19, 2012

    Very helpful, especially for someone without prior programming experience

    Each section is clearly explained with example and exercise.

    Was this review helpful? Yes  No   Report this review
  • Posted January 16, 2011

    Gaddis makes it very simple, no solutions

    Gaddis explains everything step by step, very simple. But good luck with the problems at the end of the chapter. Some problems are kind of easy. But other ones I barely miss. Gaddis does NOT provide a SOLUTION manual. Solution manuals are available for any algebra or calculus course. I would NOT recommend this book for a beginner. The only reason I bought this book was because I had to buy it for a college course, which I ended up dropping. Thanks Mr. Gaddis for leaving out the answers. What a bonehead move.

    Was this review helpful? Yes  No   Report this review
  • Posted December 5, 2009

    Great book for people who do not know anything about programs.

    The book has lots of samples and easy to use guide, it is a great book.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted November 30, 2009

    No text was provided for this review.

  • Anonymous

    Posted January 14, 2010

    No text was provided for this review.

  • Anonymous

    Posted April 8, 2010

    No text was provided for this review.

  • Anonymous

    Posted March 23, 2010

    No text was provided for this review.

  • Anonymous

    Posted August 21, 2011

    No text was provided for this review.

Sort by: Showing all of 8 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)