Skip to content

C++ How to Program

Best in textbook rentals since 2012!

ISBN-10: 0136117260

ISBN-13: 9780136117261

Edition: 7th 2010

Authors: Paul Deitel, Harvey Deitel, Deitel and Deitel Staff

List price: $135.00
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

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 and early objects approach. The text has an emphasis on achieving program clarity through structured and object-oriented programming, software reuse and component-oriented software construction. The Sixth Edition reflects the suggested improvements of a distinguished…    
Customers also bought

Book details

List price: $135.00
Edition: 7th
Copyright year: 2010
Publisher: Prentice Hall PTR
Publication date: 8/6/2009
Binding: Mixed Media
Pages: 1104
Size: 6.75" wide x 9.00" long x 1.50" tall
Weight: 3.410
Language: English

Preface
Introduction to Computers, the Internet and the World Wide Web
Introduction
Computers: Hardware and Software
Computer Organization
Personal, Distributed and Client/Server Computing
The Internet and the World Wide Web
Web 2.0
Machine Languages, Assembly Languages and High-Level Languages
History of C and C++
C++ Standard Library
History of Java
Fortran, COBOL, Pascal and Ada
BASIC, Visual Basic, Visual C++, C# and .NET
Key Software Trend: Object Technology
Typical C++ Development Environment
Notes About C++ and C++ How to Program, 7/e
Test-Driving a C++ Application
Software Technologies
Future of C++: Open Source Boost Libraries, TR1 and C++0x
Software Engineering Case Study: Introduction to Object Technology and the UML
Wrap-Up
Web Resources
Introduction to C++ Programming
Introduction
First Program in C++: Printing a Line of Text
Modifying Our First C++ Program
Another C++ Program: Adding Integers
Memory Concepts
Arithmetic
Decision Making: Equality and Relational Operators
Wrap-Up
Introduction to Classes and Objects
Introduction
Classes, Objects, Member Functions and Data Members
Defining a Class with a Member Function
Defining a Member Function with a Parameter
Data Members, set Functions and get Functions
Initializing Objects with Constructors
Placing a Class in a Separate File for Reusability
Separating Interface from Implementation
Validating Data with set Functions
Wrap-Up
Control Statements: Part I
Introduction
Algorithms
Pseudocode
Control Structures
if Selection Statement
if...else Double-Selection Statement
while Repetition Statement
Formulating Algorithms: Counter-Controlled Repetition
Formulating Algorithms: Sentinel-Controlled Repetition
Formulating Algorithms: Nested Control Statements
Assignment Operators
Increment and Decrement Operators
Wrap-Up
Control Statements: Part 2
Introduction
Essentials of Counter-Controlled Repetition
for Repetition Statement
Examples Using the for Statement
do...while Repetition Statement
switch Multiple-Selection Statement
break and continue Statements
Logical Operators
Confusing the Equality (==) and Assignment (=) Operators
Structured Programming Summary
Wrap-Up
Functions and an Introduction to Recursion
Introduction
Program Components in C++
Math Library Functions
Function Definitions with Multiple Parameters
Function Prototypes and Argument Coercion
C++ Standard Library Header Files
Case Study: Random Number Generation
Case Study: Game of Chance; Introducing enum
Storage Classes
Scope Rules
Function Call Stack and Activation Records
Functions with Empty Parameter Lists
Inline Functions
References and Reference Parameters
Default Arguments
Unary Scope Resolution Operator
Function Overloading
Function Templates
Recursion
Example Using Recursion: Fibonacci Series
Recursion vs. Iteration
Wrap-Up
Arrays and Vectors
Introduction
Arrays
Declaring Arrays
Examples Using Arrays
Declaring an Array and Using a Loop to Initialize the Array's Elements
Initializing an Array in a Declaration with an Initializer List
Specifying an Array's Size with a Constant Variable and Setting Array Elements with Calculations
Summing the Elements of an Array
Using Bar Charts to Display Array Data Graphically
Using the Elements of an Array as Counters
Using Arrays to Summarize Survey Results
Static Local Arrays and Automatic Local Arrays
Passing Arrays to Functions
Case Study: Class GradeBook Using an Array to Store Grades
Searching Arrays with Linear Search
Sorting Arrays with Insertion Sort
Multidimensional Arrays
Case Study: Class GradeBook Using a Two-Dimensional Array
Introduction to C++ Standard Library Class Template vector
Wrap-Up
Pointers
Introduction
Pointer Variable Declarations and Initialization
Pointer Operators
Pass-by-Reference with Pointers
Using const with Pointers
Selection Sort Using Pass-by-Reference
size of Operator
Pointer Expressions and Pointer Arithmetic
Relationship Between Pointers and Arrays
Pointer-Based String Processing
Arrays of Pointers
Function Pointers
Wrap-Up
Classes: A Deeper Look, Part I
Introduction
Time Class Case Study
Class Scope and Accessing Class Members
Separating Interface from Implementation
Access Functions and Utility Functions
Time Class Case Study: Constructors with Default Arguments
Destructors
When Constructors and Destructors Are Called
Time Class Case Study: A Subtle Trap-Returning a Reference to a private Data Member
Default Memberwise Assignment
Wrap-Up
Classes: A Deeper Look, Part 2
Introduction
const (Constant) Objects and const Member Functions
Composition: Objects as Members of Classes
friend Functions and friend Classes
Using the this Pointer
static Class Members
Data Abstraction and Information Hiding
Wrap-Up
Operator Overloading
Introduction
Fundamentals of Operator Overloading
Restrictions on Operator Overloading
Operator Functions as Class Members vs. Global Functions
Overloading Stream Insertion and Stream Extraction Operators
Overloading Unary Operators
Overloading Binary Operators
Dynamic Memory Management
Case Study: Array Class
Converting between Types
Building a String Class
Overloading ++ and --
Case Study: A Date Class
Standard Library Class string
explicit Constructors
Proxy Classes
Wrap-Up
Object-Oriented Programming: Inheritance
Introduction
Base Classes and Derived Classes
protected Members
Relationship between Base Classes and Derived Classes
Creating and Using a CommissionEmployee Class
Creating a BasePlusCommissionEmployee Class Without Using Inheritance
Creating a CommissionEmployee-BasePlusCommissionEmployee Inheritance Hierarchy
CommissionEmployee-BasePlusCommissionEmployee Inheritance Hierarchy Using protected Data
CommissionEmployee-BasePlusCommissionEmployee Inheritance Hierarchy Using private Data
Constructors and Destructors in Derived Classes
public, protected and private Inheritance
Software Engineering with Inheritance
Wrap-Up
Object-Oriented Programming: Polymorphism
Introduction
Polymorphism Examples
Relationships Among Objects in an Inheritance Hierarchy
Invoking Base-Class Functions from Derived-Class Objects
Aiming Derived-Class Pointers at Base-Class Objects
Derived-Class Member-Function Calls via Base-Class Pointers
Virtual Functions
Summary of the Allowed Assignments Between Base-Class and Derived-Class Objects and Pointers
Type Fields and switch Statements
Abstract Classes and Pure virtual Functions
Case Study: Payroll System Using Polymorphism
Creating Abstract Base Class Employee
Creating Concrete Derived Class SalariedEmployee
Creating Concrete Derived Class HourlyEmployee
Creating Concrete Derived Class CommissionEmployee
Creating Indirect Concrete Derived Class BasePlusCommissionEmployee
Demonstrating Polymorphic Processing
(Optional) Polymorphism, Virtual Functions and Dynamic Binding "Under the Hood"
Case Study: Payroll System Using Polymorphism and Runtime Type Information with Downcasting, dynamic_cast, typeid and type_info
Virtual Destructors
Wrap-Up
Templates
Introduction
Function Templates
Overloading Function Templates
Class Templates
Nontype Parameters and Default Types for Class Templates
Notes on Templates and Inheritance
Notes on Templates and Friends
Notes on Templates and static Members
Wrap-Up
Stream Input/Output
Introduction
Streams
Classic Streams vs. Standard Streams
iostream Library Header Files
Stream Input/Output Classes and Objects
Stream Output
Output of char * Variables
Character Output Using Member Function put
Stream Input
get and getline Member Functions
istream Member Functions peek, putback and ignore
Type-Safe I/O
Unformatted I/O Using read, write and gcount
Introduction to Stream Manipulators
Integral Stream Base: dec, oct, hex and setbase
Floating-Point Precision (precision, setprecision)
Field Width (width, setw)
User-Defined Output Stream Manipulators
Stream Format States and Stream Manipulators
Trailing Zeros and Decimal Points (showpoint)
Justification (left, right and internal)
Padding (fill, setfill)
Integral Stream Base (dec, oct, hex, showbase)
Floating-Point Numbers; Scientific and Fixed Notation (scientific, fixed)
Uppercase/Lowercase Control (uppercase)
Specifying Boolean Format (boolalpha)
Setting and Resetting the Format State via Member Function flags
Stream Error States
Tying an Output Stream to an Input Stream
Wrap-Up
Exception Handling
Introduction
Exception-Handling Overview
Example: Handling an Attempt to Divide by Zero
When to Use Exception Handling
Rethrowing an Exception
Exception Specifications
Processing Unexpected Exceptions
Stack Unwinding
Constructors, Destructors and Exception Handling
Exceptions and Inheritance
Processing new Failures
Class auto_ptr and Dynamic Memory Allocation
Standard Library Exception Hierarchy
Other Error-Handling Techniques
Wrap-Up
File Processing
Introduction
Data Hierarchy
Files and Streams
Creating a Sequential File
Reading Data from a Sequential File
Updating Sequential Files
Random-Access Files
Creating a Random-Access File
Writing Data Randomly to a Random-Access File
Reading from a Random-Access File Sequentially
Case Study: A Transaction-Processing Program
Overview of Object Serialization
Wrap-Up
Class string and String Stream Processing
Introduction
string Assignment and Concatenation
Comparing Strings
Substrings
Swapping strings
string Characteristics
Finding Substrings and Characters in a string
Replacing Characters in a string
Inserting Characters into a string
Conversion to C-Style Pointer-Based char * Strings
Iterators
String Stream Processing
Wrap-Up
Searching and Sorting
Introduction
Searching Algorithms
Efficiency of Linear Search
Binary Search
Sorting Algorithms
Efficiency of Selection Sort
Efficiency of Insertion Sort
Merge Sort (A Recursive Implementation)
Wrap-Up
Data Structures
Introduction
Self-Referential Classes
Dynamic Memory Allocation and Data Structures
Linked Lists
Stacks
Queues
Trees
Wrap-Up
Bits, Characters, C Strings and structs
Introduction
Structure Definitions
Initializing Structures
Using Structures with Functions
typedef
Example: Card Shuffling and Dealing Simulation
Bitwise Operators
Bit Fields
Character-Handling Library
Pointer-Based String Manipulation Functions
Pointer-Based String-Conversion Functions
Search Functions of the Pointer-Based String-Handling Library
Memory Functions of the Pointer-Based String-Handling Library
Wrap-Up
Standard Template Library (STL)
Introduction to the Standard Template Library (STL)
Introduction to Containers
Introduction to Iterators
Introduction to Algorithms
Sequence Containers
Vector Sequence Container
list Sequence Container
deque Sequence Container
Associative Containers
multiset Associative Container
Set Associative Container
multimap Associative Container
map Associative Container
Container Adapters
stack Adapter
queue Adapter
priority_queue Adapter
Algorithms
fill, fill_n, generate and generate_n
equal, mismatch and lexicographical_compare
remove, remove_if, remove_copy and remove_copy_if
replace, replace_if, replace_copy and replace_copy_if
Mathematical Algorithms
Basic Searching and Sorting Algorithms
swap, iter_swap and swap_ranges
copy_backward, merge, unique and reverse
inplace_merge, unique_copy and reverse_copy
Set Operations
lower_bound, upper_bound and equal_range
Heapsort
min and max
STL Algorithms Not Covered in This Chapter
Class bitset
Function Objects
Wrap-Up
STL Web Resources
Chapters on the Web: Chapters 23-27 are PDF documents posted online at the book's Companion Website (located at www.pearsonhighered.com/deitel).
Boost Libraries, Technical Report I and C++0x
Introduction
Deitel Online C++ and Related Resource Centers
Boost Libraries
Boost Libraries Overview
Regular Expressions with the Boost.Regex Library
Regular Expression Example
Validating User Input with Regular Expressions
Replacing and Splitting Strings
Smart Pointers with Boost.Smart_ptr
Reference Counted shared_ptr
weak_ptr: shared_ptr Observer
Technical Report 1
C++0x
Core Language Changes
Wrap_Up
Other Topics
Introduction
const_cast Operator
mutable Class Members
namespaces
Operator Keywords
Pointers to Class Members (.* and ->*)
Multiple Inheritance
Multiple Inheritance and virtual Base Classes
Wrap-Up
ATM Case Study, Part I: Object-Oriented Design with the UML
Introduction
Examining the ATM Requirements Document
Identifying the Classes in the ATM Requirements Document
Identifying Class Attributes
Identifying Objects' States and Activities
Identifying Class Operations
Indicating Collaboration Among Objects
Wrap-Up
ATM Case Study, Part 2: Implementing an Object-Oriented Design
Introduction
Starting to Program the Classes of the ATM System
Incorporating Inheritance into the ATM System
ATM Case Study Implementation
Class ATM
Class Screen
Class Keypad
Class CashDispenser
Class DepositSlot
Class Account
Class BankDatabase
Class Transaction
Class BalanceInquiry
Class Withdrawal
Class Deposit
Test Program ATMCaseStudy.cpp
Wrap-Up
Game Programming with Ogre
Introduction
Installing Ogre, OgreAL and OpenAL
Basics of Game Programming
The Game of Pong: Code Walkthrough
Ogre Initialization
Creating a Scene
Adding to the Scene
Animation and Timers
User Input
Collision Detection
Sound
Resources
Pong Driver
Wrap-Up
Ogre Web Resources
Operator Precedence and Associativity
ASCII Character Set
Fundamental Types
Number Systems
Introduction
Abbreviating Binary Numbers as Octal and Hexadecimal Numbers
Converting Octal and Hexadecimal Numbers to Binary Numbers
Converting from Binary, Octal or Hexadecimal to Decimal
Converting from Decimal to Binary, Octal or Hexadecimal
Negative Binary Numbers: Two's Complement Notation
Preprocessor
Introduction
#include Preprocessor Directive
#define Preprocessor Directive: Symbolic Constants
#define Preprocessor Directive: Macros
Conditional Compilation
#error and #pragma Preprocessor Directives
Operators # and ##
Predefined Symbolic Constants
Assertions
Wrap-Up
Appendices on the Web: Appendices F-I are PDF documents posted online at the book's Companion Website (located at www.pearsonhighered.com/deitel).
C Legacy Code Topics
Introduction
Redirecting Input/Output on UNIX/Linux/Mac OS X and Windows Systems
Variable-Length Argument Lists
Using Command-Line Arguments
Notes on Compiling Multiple-Source-File Programs
Program Termination with exit and atexit
Type Qualifier volatile
Suffixes for Integer and Floating-Point Constants
Signal Handling
Dynamic Memory Allocation with calloc and realloc
Unconditional Branch: goto
Unions
Linkage Specifications
Wrap-Up
UML 2: Additional Diagram Types
Introduction
Additional Diagram Types
Using the Visual Studio Debugger
Introduction
Breakpoints and the Continue Command
Locals and Watch Windows
Controlling Execution Using the Step Into, Step Over, Step Out and Continue Commands
Autos Window
Wrap-Up
Using the GNU C++ Debugger
Introduction
Breakpoints and the run, stop, continue and print Commands
print and set Commands
Controlling Execution Using the step, finish and next Commands
watch Command
Wrap-Up
Index