Skip to content

Thinking in C++ Introduction to Standard C++

Best in textbook rentals since 2012!

ISBN-10: 0139798099

ISBN-13: 9780139798092

Edition: 2nd 2000

Authors: Bruce Eckel

List price: $96.80
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!

In the first edition of Thinking in C++, Bruce Eckel synthesized years of C++ teaching and programming experience into a beautifully structured course in making the most of the language. It became an instant classic, winning the 1995 Software Development Jolt Cola Award for best book of the year. Now, Eckel has thoroughly rewritten Thinking in C++ to reflect the final ANSI/ISO C++ standard. Every page has been revisited and rethought, with many new examples and exercises -- all designed to help you understand C++ "down to the bare metal," so you can solve virtually any problem. Eckel starts with a detailed look at objects, showing how C++ programs can be constructed from off-the-shelf…    
Customers also bought

Book details

List price: $96.80
Edition: 2nd
Copyright year: 2000
Publisher: Prentice Hall PTR
Publication date: 3/15/2000
Binding: Paperback
Pages: 840
Size: 7.00" wide x 9.25" long x 1.25" tall
Weight: 2.684
Language: English

Preface
Introduction to Objects
The progress of abstraction
An object has an interface
The hidden implementation
Reusing the implementation
Inheritance: reusing the interface
Interchangeable objects with polymorphism
Creating and destroying objects
Exception handling: dealing with errors
Analysis and design
Extreme programming
Why C++ succeeds
Strategies for transition
Making and Using Objects
The process of language translation
Tools for separate compilation
Your first C++ program
More about iostreams
Introducing strings
Reading and writing files
Introducing vector
The C in C++
Creating functions
Controlling execution
Introduction to operators
Introduction to data types
Scoping
Specifying storage allocation
Operators and their use
Composite type creation
Debugging hints
Function addresses
Make: managing separate compilation
Data Abstraction
A tiny C-like library
What's wrong?
The basic object
What's an object?
Abstract data typing
Object details
Header file etiquette
Nested structures
Hiding the Implementation
Setting limits
C++ access control
Friends
Object layout
The class
Handle classes
Initialization and Cleanup
Guaranteed initialization with the constructor
Guaranteed cleanup with the destructor
Elimination of the definition block
Stash with constructors and destructors
Stack with constructors and destructors
Aggregate initialization
Default constructors
Function Overloading and Default Arguments
More name decoration
Overloading example
Unions
Default arguments
Choosing overloading vs. default arguments
Constants
Value substitution
Pointers
Function arguments and return values
Classes
Volatile
Inline Functions
Preprocessor pitfalls
Inline functions
Stash and Stack with inlines
Inlines and the compiler
Reducing clutter
More preprocessor features
Improved error checking
Name Control
Static elements from C
Namespaces
Static members in C++
Static initialization dependency
Alternate linkage specifications
References and the Copy-Constructor
Pointers in C++
References in C++
The copy-constructor
Pointers to members
Operator Overloading
Warning and reassurance
Syntax
Overloadable operators
Non-member operators
Overloading assignment
Automatic type conversion
Dynamic Object Creation
Object creation
Early examples redesigned
New and delete for arrays
Running out of storage
Overloading new and delete
Inheritance and Composition
Composition syntax
Inheritance syntax
The constructor initializer list
Combining composition and inheritance
Name hiding
Functions that don't automatically inherit
Choosing composition vs. inheritance
Protected
Operator overloading and inheritance
Multiple inheritance
Incremental development
Upcasting
Polymorphism and Virtual Functions
Evolution of C++ programmers
Upcasting
The problem
Virtual functions
How C++ implements late binding
Why virtual functions?
Abstract base classes and pure virtual functions
Inheritance and the VTABLE
Overloading and overriding
Virtual functions and constructors
Destructors and virtual destructors
Operator overloading
Downcasting
Introduction to Templates
Containers
Overview of templates
Template syntax
Stack and Stash as templates
Turning ownership on and off
Holding objects by value
Introducing iterators
Why iterators?
Coding Style
Programming Guidelines
Recommended Reading
C
General C++
Depth and dark corners
Analysis and design
Index