Practical C++ Programming

ISBN-10: 0596004192

ISBN-13: 9780596004194

Edition: 2nd 2003

Authors: Steve Oualline

List price: $49.99 Buy it from $10.85
eBook available
This item qualifies for FREE shipping

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

30 day, 100% satisfaction guarantee

If an item you ordered from TextbookRush does not meet your expectations due to an error on our part, simply fill out a return request and then return it by mail within 30 days of ordering it for a full refund of item cost.

Learn more about our returns policy


C++ is a powerful, highly flexible, and adaptable programming language that allows software engineers to organize and process information quickly and effectively. But this high-level language is relatively difficult to master, even if you already know the C programming language. The 2nd edition of "Practical C++ Programming is a complete introduction to the C++ language for programmers who are learning C++. Reflecting the latest changes to the C++ standard, this 2nd edition takes a useful down-to-earth approach, placing a strong emphasis on how to design clean, elegant code. In short, to-the-point chapters, all aspects of programming are covered including style, software engineering, programming design, object-oriented design, and debugging. It also covers common mistakes and how to find (and avoid) them. End of chapter exercises help you ensure you've mastered the material. Practical C++ Programming thoroughly covers: C++ Syntax Coding standards and style Creation and use of object classes Templates Debugging and optimization Use of the C++ preprocessor File input/output Steve Oualline's clear, easy-going writing style and hands-on approach to learning make "Practical C++ Programming a nearly painless way to master this complex but powerful programming language.
Used Starting from $23.54
New Starting from $36.64
eBooks Starting from $42.99
Rent eBooks
Buy eBooks
what's this?
Rush Rewards U
Members Receive:
You have reached 400 XP and carrot coins. That is the daily max!
Study Briefs

Limited time offer: Get the first one free! (?)

All the information you need in one place! Each Study Brief is a summary of one specific subject; facts, figures, and explanations to help you learn faster.

Add to cart
Study Briefs
Medical Terminology Online content $4.95 $1.99
Add to cart
Study Briefs
Medical Math Online content $4.95 $1.99
Customers also bought

Book details

List price: $49.99
Edition: 2nd
Copyright year: 2003
Publisher: O'Reilly Media, Incorporated
Publication date: 12/23/2002
Binding: Paperback
Pages: 574
Size: 7.00" wide x 9.25" long x 1.25" tall
Weight: 1.738
Language: English

Steve Oualline lives in Southern California, where he works as a software engineer for a major phone company. In his free time he is a real engineer on the Poway Midland Railroad. Steve has written almost a dozen books on programming and Linux software. His web site is .

The Basics
What Is C++?
A Brief History of C++
C++ Organization
How to Learn C++
The Basics of Program Writing
Programs from Conception to Execution
Creating a Real Program
Getting Help in Unix
Getting Help in an IDE
C++ Code
Naming Style
Coding Religion
Indentation and Code Format
Consistency and Organization
Basic Declarations and Expressions
Basic Program Structure
Simple Expressions
The std::cout Output Object
Variables and Storage
Variable Declarations
Assignment Statements
Floating-Point Numbers
Floating-Point Divide Versus Integer Divide
Wide Characters
Boolean Type
Arrays, Qualifiers, and Reading Numbers
Reading Data
Initializing Variables
Multidimensional Arrays
C-Style Strings
Types of Integers
Types of Floats
Constant and Reference Declarations
Hexadecimal and Octal Constants
Operators for Performing Shortcuts
Side Effects
Decision and Control Statements
if Statement
else Statement
How Not to Use std::strcmp
Looping Statements
while Statement
break Statement
continue Statement
The Assignment Anywhere Side Effect
The Programming Process
Setting Up Your Work Area
The Specification
Code Design
The Prototype
The Makefile
Electronic Archaeology
Mark Up the Program
Use the Debugger
Use the Text Editor as a Browser
Add Comments
Simple Programming
More Control Statements
for Statement
switch Statement
switch, break, and continue
Variable Scope and Functions
Scope and Storage Class
Summary of Parameter Types
Structured Programming Basics
Real-World Programming
The C++ Preprocessor
#define Statement
Conditional Compilation
#include Files
Parameterized Macros
Advanced Features
Bit Operations
Bit Operators
The AND Operator (&)
Bitwise OR ()
The Bitwise Exclusive OR ([logical and)
The Ones Complement Operator (NOT)
The Left and Right Shift Operators ([double left angle bracket], [double right angle bracket])
Setting, Clearing, and Testing Bits
Bitmapped Graphics
Advanced Types and Classes
Advanced Types
enum Type
Bit Members or Packed Structures
Arrays of Structures
Simple Classes
Improved Stack
Using a Class
Introduction to Constructors and Destructors
Automatically Generated Member Functions
Structures Versus Classes
More on Classes
Constant Functions
Constant Members
Static Member Variables
Static Member Functions
The Meaning of static
Simple Pointers
const Pointers
Pointers and Printing
Pointers and Arrays
The reinterpret_cast
Pointers and Structures
Command-Line Arguments
Advanced Programming Concepts
File Input/Output
C++ File I/O
Conversion Routines
Binary and ASCII Files
The End-of-Line Puzzle
Binary I/O
Buffering Problems
Unbuffered I/O
Designing File Formats
C-Style I/O Routines
C-Style Conversion Routines
C-Style Binary I/O
C- Versus C++- Style I/O
Debugging and Optimization
Code Reviews
Serial Debugging
Going Through the Output
Interactive Debuggers
Debugging a Binary Search
Interactive Debugging Tips and Tricks
Runtime Errors
How to Optimize
Case Study: Inline Functions Versus Normal Functions
Case Study: Optimizing a Color-Rendering Algorithm
Operator Overloading
Creating a Simple Fixed-Point Class
Operator Functions
Operator Member Functions
Full Definition of the Fixed-Point Class
Floating Point
Floating-Point Format
Floating Addition/Subtraction
Multiplication and Division
Overflow and Underflow
Roundoff Error
Minimizing Roundoff Error
Determining Accuracy
Precision and Speed
Power Series
Advanced Pointers
Pointers, Structures, and Classes
delete Operator
Linked Lists
Ordered Linked Lists
Doubly Linked Lists
Printing a Tree
The Rest of the Program
Data Structures for a Chess Program
Advanced Classes
Derived Classes
Virtual Functions
Virtual Classes
Function Hiding in Derived Classes
Constructors and Destructors in Derived Classes
The dynamic_cast Operator
Other Language Features
Adding Exceptions to the Stack Class
Exceptions Versus assert
Modular Programming
Public and Private
The extern Storage Class
The Body of the Module
A Program to Use Infinite Arrays
The Makefile for Multiple Files
Using the Infinite Array
Dividing a Task into Modules
Module Design Guidelines
What Is a Template?
Templates: The Hard Way
Templates: The C++ Way
Function Specialization
Class Templates
Class Specialization
Implementation Details
Advanced Features
Standard Template Library
STL Basics
Class List--A Set of Students
Creating a Waiting List with the STL List
Storing Grades in a STL Map
Putting It All Together
Practical Considerations When Using the STL
Getting More Information
Program Design
Design Goals
Design Factors
Design Principles
Real-World Design Techniques
Putting It All Together
Code Design
Functional Description
A Final Warning
Program Files
From C to C++
K&R-Style Functions
malloc and free
Turning Structures into Classes
setjmp and longjmp
Mixing C and C++ Code
C++'s Dustier Corners
The?: Construct
The Comma Operator
Overloading the () Operator
Pointers to Members
The asm Statement
The mutable Qualifier
Run Time Type Identification
Programming Adages
switch Statement
The Ten Commandments for C++ Programmers
Final Note
Operator Precedence Rules
Computing Sine Using a Power Series
Free shipping on orders over $35*

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

Learn more about the TextbookRush Marketplace.