Home :: Books :: Computers & Internet  

Arts & Photography
Audio CDs
Audiocassettes
Biographies & Memoirs
Business & Investing
Children's Books
Christianity
Comics & Graphic Novels
Computers & Internet

Cooking, Food & Wine
Entertainment
Gay & Lesbian
Health, Mind & Body
History
Home & Garden
Horror
Literature & Fiction
Mystery & Thrillers
Nonfiction
Outdoors & Nature
Parenting & Families
Professional & Technical
Reference
Religion & Spirituality
Romance
Science
Science Fiction & Fantasy
Sports
Teens
Travel
Women's Fiction
Practical C++ Programming, Second Edition

Practical C++ Programming, Second Edition

List Price: $39.95
Your Price: $26.37
Product Info Reviews

<< 1 2 >>

Rating: 2 stars
Summary: Not to be trusted
Review: Although I did gain a lot of knowledge about C++ from this book, you simply cannot take everything the author says at face value. There are many details about the language that are left unexplained. For example, the keyword "friend" is described in a couple of paragraphs. Compare that with Stroustrap's book which contains serveral pages on the subject.

What was most disturbing about this book was the example given on page 302-303 which has to do with optimization. The author states, "In general, loops should be ordered so the innermost loop is the most complex and the outermost loop is the simplest." Well this certainly is not true. Just try examples 17.8 and 17.9 and you will see that it makes no sense. I even gave these examples to 25 year programming veterans, and it made no sense to them either. The test case I provided proved the book was just plain wrong. This one flawed example made me wonder if there are other unseen problems in all the other examples too.

Having said all of this, I am a big fan of O'Reilly books. I will still use the book as a reference for some things. So not all is lost. This could be a good book for beginner programmers as long as they try out each example and don't rely completely on this book as a source of information. This book combined with Stroustrap's book could be a good combination.

Rating: 4 stars
Summary: very good introductory book
Review: First let me say that if you have read "Practical C Programming" much of this book will seem familiar to you. Especially it seems the first 12 chapters just substituted c for c++. However, this is only really a minor annoyance if you've read the other book first. To me "Practical C Programming" was very helpful in understanding a lot of topics and I was hoping this would be similar... to bad it's too similar. Now that's the negative part (unless you've never read "Practical C Programming") now on to the positives.

The focus in this book is definately on the "practical." The author gives many code examples with errors in them and says something like "This code doesn't produce the results you expect, why?" Then at the end of the chapter are the answers in case you can't find it. Sometimes you think "Doh, that's a stupid error" but that's the whole point of "practical," most of your programming errors will be stupid errors and this book helps train you to spot them.

The author also discusses style and code readability quite a bit. Often saying things like "C++ allows you to do this but don't because ..." which I found quite helpful.

While many things in this book aren't covered too deeply, I think it's probably a very good introduction book. I know perl and I've decided to learn c and c++. After reading "Practical C Programming," I decided that while C is good, it might help me to learn C++. Therefore I bought "Practical C++ Programming" and it's definately a good introduction. I would definately recommend buying a reference book of some sort that describes some of the details a little better as well as a book on GUI programming. In particular "C++ GUI Programming with Qt 3" looks promising. (assuming you plan on doing GUI programming)

So in summary, while this book is a great book, it is not the only book on C++ you should own. It is however very easy to read through from the beginning to the end. I only gave it 4 stars because a lot of the text is taken from "Practical C Programming" and certain areas need a little more detail (requiring another book). However I don't regret buying this book (like I have some other technical books) and I feel it has certainly helped me learn.

Rating: 4 stars
Summary: very good introductory book
Review: First let me say that if you have read "Practical C Programming" much of this book will seem familiar to you. Especially it seems the first 12 chapters just substituted c for c++. However, this is only really a minor annoyance if you've read the other book first. To me "Practical C Programming" was very helpful in understanding a lot of topics and I was hoping this would be similar... to bad it's too similar. Now that's the negative part (unless you've never read "Practical C Programming") now on to the positives.

The focus in this book is definately on the "practical." The author gives many code examples with errors in them and says something like "This code doesn't produce the results you expect, why?" Then at the end of the chapter are the answers in case you can't find it. Sometimes you think "Doh, that's a stupid error" but that's the whole point of "practical," most of your programming errors will be stupid errors and this book helps train you to spot them.

The author also discusses style and code readability quite a bit. Often saying things like "C++ allows you to do this but don't because ..." which I found quite helpful.

While many things in this book aren't covered too deeply, I think it's probably a very good introduction book. I know perl and I've decided to learn c and c++. After reading "Practical C Programming," I decided that while C is good, it might help me to learn C++. Therefore I bought "Practical C++ Programming" and it's definately a good introduction. I would definately recommend buying a reference book of some sort that describes some of the details a little better as well as a book on GUI programming. In particular "C++ GUI Programming with Qt 3" looks promising. (assuming you plan on doing GUI programming)

So in summary, while this book is a great book, it is not the only book on C++ you should own. It is however very easy to read through from the beginning to the end. I only gave it 4 stars because a lot of the text is taken from "Practical C Programming" and certain areas need a little more detail (requiring another book). However I don't regret buying this book (like I have some other technical books) and I feel it has certainly helped me learn.

Rating: 2 stars
Summary: Not to be trusted
Review: 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.

Rating: 1 stars
Summary: Not recommended
Review: 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.

Rating: 4 stars
Summary: Great for Concept
Review: I thought this book fit the need I bought it for perfectly: I wanted to be better as a programmer.

I didn't need help learning syntax, I didn't need help with classes or pointers. I wanted to be more efficient and effective at what I do.

This book used real-world examples, giving you code with a simple bug in it, and tasking you to find it.

Rating: 5 stars
Summary: Great Book
Review: I was amazed at how clearly this book is written.

Rating: 3 stars
Summary: Good, but errors and lack of depth detract
Review: Overall, the book offers a balanced and well-presented introduction to C++. However, there are too many typos and mistakes for a programming text. O'Reilly needs to kick their editing team into gear. In addition, many topics could and should be explained more in-depth. As is, many topics are only lightly touched on and more of the nuts and bolts of the language (i.e. characteristics that really lead to a quality understanding) are omitted.

Rating: 3 stars
Summary: Good book, but needs some improvement.
Review: 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.

Rating: 3 stars
Summary: Quite good, but some issues are not well explained
Review: The book doesn't explain some parts of the c language as clearly as it has to be explained. To understand some of them you'll need to read these parts twice or more times.
Someone who has no idea about c, will understand the principles but if you ask this person to explain to another one what he understood, this person will have refer itself to the book several times.
I think this is because some subjects are not DEEPLY explained. Also, there are some punctuation mistakes that could make the reader misunderstand some parts. But let's say this book is quite good for beginners. (If it was possible, I'd give this book 2.5 stars instead of 3)


<< 1 2 >>

© 2004, ReviewFocus or its affiliates