Amazon.com: Practical C++ Programming, Second Edition (0636920004196): Steve Oualline: Books

Buy New

or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Buy Used
Used - Good See details
$16.15 & eligible for FREE Super Saver Shipping on orders over $25. Details

or
Sign in to turn on 1-Click ordering.
 
   
Sell Back Your Copy
For a $2.59 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Practical C++ Programming, Second Edition
 
 
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Practical C++ Programming, Second Edition [Paperback]

Steve Oualline (Author)
3.3 out of 5 stars  See all reviews (17 customer reviews)

List Price: $39.95
Price: $25.30 & this item ships for FREE with Super Saver Shipping. Details
You Save: $14.65 (37%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Want it delivered Monday, February 27? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for students on millions of items. Learn more

Sell Back Your Copy for $2.59
Whether you buy it used on Amazon for $10.24 or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $2.59.
Used Price$10.24
Trade-in Price$2.59
Price after
Trade-in
$7.65

Book Description

January 2003 0596004192 978-0596004194 2nd

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.

Frequently Bought Together

Practical C++ Programming, Second Edition + C++ Without Fear: A Beginner's Guide That Makes You Feel Smart + Programming Pearls (2nd Edition)
Price For All Three: $71.55

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • C++ Without Fear: A Beginner's Guide That Makes You Feel Smart $20.17

    In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details

  • Programming Pearls (2nd Edition) $26.08

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details



Editorial Reviews

Review

"When I picked up Practical C++ I was very skeptical, I've read numerous books aimed at beginner/intermediate readers and very few of them left any lasting impression on me. This book however, did! It's an excellent book, and it feels like it's written by a programmer and not an academic as most tend to. Not only are you going to learn about C++ in the easiest way possible, you're going to learn a lot of tips from someone who's been developing in C++ a long time. ... But I can't say enough good things about this book, it covers a lot more than C++, and it has a whole chapter on program design. This book is all you need to get started with C++. The title says Practical C++ and I'd say it's very practical. Highly recommended." - Peter Waller, news@UK

About the Author

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 http://www.oualline.com .


Product Details

  • Paperback: 600 pages
  • Publisher: O'Reilly Media; 2nd edition (January 2003)
  • Language: English
  • ISBN-10: 0596004192
  • ISBN-13: 978-0596004194
  • Product Dimensions: 9.1 x 6.9 x 1.3 inches
  • Shipping Weight: 1.8 pounds (View shipping rates and policies)
  • Average Customer Review: 3.3 out of 5 stars  See all reviews (17 customer reviews)
  • Amazon Best Sellers Rank: #31,656 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

17 Reviews
5 star:
 (6)
4 star:
 (2)
3 star:
 (3)
2 star:
 (3)
1 star:
 (3)
 
 
 
 
 
Average Customer Review
3.3 out of 5 stars (17 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

39 of 41 people found the following review helpful:
3.0 out of 5 stars Good book, but needs some improvement., February 29, 2004
This review is from: Practical C++ Programming, Second Edition (Paperback)
Practical C++ Programming is dedicated to teaching the reader how to program in the C++ programming language. I make this seemingly redundant statement because upon first hearing the title I thought the book may have been intended as a guide for teaching experienced C++ programmers how to avoid the pitfalls of bad object oriented practices using the language. Quite the contrary, this book is designed to teach anyone, from complete beginner to experienced programmer, how to program in C++. The book has four goals:

1. Teach the reader C++.
2. Instill good programming style and practice (indeed, the book's subtitle is "Programming Style Guidelines.")
3. Teach the programmer basic software development concepts.
4. Introduce the reader to debuggers and the make utility.

Practical C++ Programming is a fairly large book: 549 pages organized into six "parts" containing 30 chapters and 5 appendixes. The parts are as follows: Part I - The Basics, Part II - Simple Programming, Part III - Advanced Types and Classes, Part IV - Advanced Programming Concepts, Part V - Other Language Features, Part VI - Appendixes. You will have to read most of the book in order to learn C++, although there are a number of chapters you can avoid if your goal is to learn only the language's mechanics.

I must start by saying that I like the book, I think it has value. There are a number of things I really appreciate about the book. There are also some problems that adversely impact the book's use by beginners (more about those later.)

The book discusses all the essential elements of C++. Areas covered include: Class definition, namespaces, scope definition and resolution, operator and function overloading, object memory allocation (i.e. new and delete,) type casting, exceptions, inheritance, templates (including an introduction to the Standard Template Library,) the Input/Output system (including the C I/O library,) and pointers. All language operators are discussed (i.e. relational, assignment, etc.) Also covered are language elements that C++ has in common with C. The other areas of instruction (programming style, software development concepts, programming tools) are intertwined with the primary topic throughout the course of the book.

One of the book's strong points is the author's excellent conversational writing style. Its hard to find books that combine good technical information with clear expository writing (O'Reilly seems to publish most of them.) Practical C++ Programming definitely succeeds in this area. The author frequently references his own experience to reinforce concepts on programming style, design and debugging. I found his anecdotes useful and occasionally humorous. The book also contains small sections of text that serve to warn the reader of pitfalls (these are marked with a bear trap icon) and areas where caution should be exercised (marked with bear paw tracks.) Also, some of the source code examples contain intentional bugs, which the author explains at the end of each chapter. Diagrams, tables and source code examples are found on almost every page of the book, and these are used to keep the reader engaged with the textual discourse. Some of the diagrams are very well done.

The book contains some interesting programming examples. The chapters on operator overloading and floating point math contain source code illustrating how to deal with the numeric precision problems that plague all computers and computer languages. The chapter on the Standard Template Library contains a program showing how to create and use objects that manage a simple roster for enrollment and grading of students. The book also contains several examples of linked-lists and trees, for the purpose of teaching the reader how to use pointers, and to contrast such traditional algorithms with the easier to use C++ Standard Template Library.

Now to speak about the book's shortcomings. First, although the book does a solid job of covering the important C++ topics of classes, inheritance, and templates, it needs to explain more than it does (especially the coverage of inheritance.) Also, the terms instantiation, polymorphism and encapsulation are not used in the book. It seems that the author doesn't want to confuse the reader with object-oriented concepts. The book should have provided more insight into object-oriented concepts, given that C++ supports objects. This could have been done in a separate chapter. Also, these areas of the book are sparsely diagrammed. Second, source code errors and typos appear regularly enough to frustrate an inexperienced reader. I also found a couple of diagrams to be inaccurate. Third, there are occasional misleading statements that a beginner probably won't recognize as such. Because of these problems, I cannot recommend the book to people with no previous programming experience. I'm surprised that these problems made it into a second edition.

I think that despite these problems, the book has value to experienced programmers who want to learn C++. C programmers in particular will have an easier time dealing with the source code errors. The book can be used by beginning programmers in a classroom environment, providing the instructor understands the book's problems and is prepared to guide students around them. The book should be particularly useful when read in conjunction with a good C++ reference guide.

Practical C++ Programming is an ambitious work in its breadth and depth. It covers more areas of software development than other C++ books. It takes an interesting approach that some readers will appreciate and others may not. I'm currently undecided on the appropriateness of chapters on debuggers, the make utility, and the code review process. These topics may side-track many beginners.

I would have liked to see a more detailed and complete explanation of the object-oriented aspects of C++ (including more diagrams.) It would have been nice to include a table showing all Standard Template Library containers and methods (the book does make reference to two STL web sites.) Some mention of third-party object libraries (such as Rogue Wave, Qt, etc.) and their uses would have been helpful.

The lack of a detailed explanation of inheritance may not be bad. I'm one of those who believe that heavy reliance on inheritance causes serious maintainability problems. However, I think the book should have covered this topic more fully, so the reader would understand the issue.

O'Reilly & Associates is my favorite technical book publisher. However, some of the books I've read from this publisher contain numerous programming errors in the source code examples. I've been able to overlook these problems because I'm an experienced software developer and I appreciate the really outstanding job their authors do in explaining subject matter. Their book Pthreads Programming is a prime example of this. However, these problems cause concern when I read one of their books on a topic that I don't understand very well. It appears that O'Reilly needs to improve the technical review of their books before they go to press. I understand the difficulty of this when few experts on a particular topic may exist (not the case with C++.) Publishers may also be reluctant to hire outside editors due to non-disclosure concerns.

In summary, Practical C++ Programming is a good book that really shines in some aspects and is deficient in others. With some improvement, it could be a great book.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


24 of 25 people found the following review helpful:
1.0 out of 5 stars Not recommended, June 20, 2003
By 
Victor Wai Tak Kam (Pasadena, CA United States) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
This review is from: Practical C++ Programming, Second Edition (Paperback)
I needed a book to refresh my C++ knowledge since it has been a few years since I have written C++ code. My labmates already own copies of Stroustrup's definitive "C++ Programming Language", Stephen Prata's "C++ Primer Plus" and Chapman's "Late Night Guide to C++", but I wanted to own a C++ text so I can read it at home. The O'Reilly series of programming languages (Perl, Python) generally are pretty good, and I got this book with high expectations.

Bad move. The text is just filled with errors and bugs. Some bugs are so rudimentary you just have to question whether the authors tested the code. For instace, the section on substr on P.50:

"... to extract a portion of a string, there is the substr member function. [Form of function is]:

string.substr(first, last)

This function returns a string containing all the characters from first to last. ... "

And proceeds to give an example. Alas; the form of the substr function is NOT string.substr(first, last), but string.substr(first, number of characters). This caused me a good half hour of confusion and head scratching. I simply did not expect the book to get this wrong, and especially not with substr examples given right after.

Apart from bugs, typos and related logistic errors, this book suffers from poor integration of material. The chapters on Style and Programming Adages are pretty good, but the rest of the chapters (30 chapters in total) really need some serious conlidation. It's easy reading, true, but for me, it's hard to acquire a good understanding of C++ out of it.

The title of the book is somewhat misleading. A more appropriate title would be "Introductory C++ Programming". You cannot turn to this book when writing practical code.

So these days when I have C++ blues I turn to the other C++ books lying around in my lab, ruing at the same time for throwing away ~$30 getting this book. My enthusiasm and high praise for the O'Reilly series of programming books has taken a hit.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


24 of 26 people found the following review helpful:
2.0 out of 5 stars An unimpressive textbook, April 25, 2003
By 
Yonatan Zunger (Mountain View, CA USA) - See all my reviews
(REAL NAME)   
This review is from: Practical C++ Programming, Second Edition (Paperback)
This is a programming textbook for C++ that assumes that you have little or no programming experience. Over half of the text is dedicated to basics of programming, constructions like arrays and so on - even the idea of classes isn't broached until p. 191.

But the serious problem with this text is that it encourages really bad things without warnings. For instance, every C++ programmer knows that class destructors really, truly ought to be virtual; but the text doesn't mention this at all until chapter 21, when discussing virtuality. Up until then, even the examples in the text include non-virtual destructors. Someone reading this text without reading it cover-to-cover, with extraordinary care, will miss this rather crucial point completely - and if, gods forbid, they end up using some of the sample code for their own purposes, they'll find themselves with bugs that are very difficult to track down.

This is unfortunately symptomatic of the style of the text as a whole. So many of the examples contain major flaws which aren't even discussed until the end of the book that they're virtually useless, except perhaps as good exercises in "What's wrong with this code snippet?"

Not recommended - there are better books out there.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



Inside This Book (learn more)
Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
standard template library, binary search, reading numbers, void eof, stack int data, stack int pop, top value return, struct bin, object std, setjmp call, stack void push, parameterized macro, int matrix, struct foo, copy constructor defaults, getline function, int item, default destructor, function std, stack class, show warranty, class stack, guard digit, int cost, keyboard module
Key Phrases - Capitalized Phrases (CAPs): (learn more)
Programming Exercises Exercise, Hello World, File Input, Program Files, Putting It All Together Example, Operator Meaning, Microsoft Visual, Advanced Pointers, Free Software Foundation, Simple Pointers, Advanced Classes, Operator Overloading Example, John Smith, Real Program, Simple Classes, Fatal Error, Microsoft Windows, Design Guideline, Start Page, Operator Functions, Steve Oualline, More Control Statements, Program Design, The Unix, Full Definition of the Fixed-Point Class
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Index | Back Cover | Surprise Me!
Search Inside This Book:


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(1)

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums





Look for Similar Items by Category


Look for Similar Items by Subject