|
|||||||||||||||||||||||||||||||||||
|
13 Reviews
|
Average Customer Review
Share your thoughts with other customers
Create your own review
|
|
Most Helpful First | Newest First
|
|
28 of 28 people found the following review helpful:
1.0 out of 5 stars
Yet another bad computer book,
By
This review is from: C++ For C Programmers, Third Edition (3rd Edition) (Paperback)
As I said in another review, the computer industry is notable for the huge quantity of really bad books it engenders. This is one of those books. Before saying why it is a bad book, I will present the table of contents:Preface 1. An Overview of C++ and Object-Oriented Programming 2. Native Types and Statements 3. Functions, Pointers, and Arrays 4. Classes 5. Constructors and Destructors 6. Operator Overloading and Conversion 7. Templates, Generic Programming, and STL 8. Inheritance 9. Exceptions 10. OOP Using C++ Appendices A. ASCII Character Codes B. Operator Precedence and Associativity C. Language Guide D. Input/Output E. STL and String Libraries References Index So, what makes this book bad? First, there is the problem of confusion of purpose. The book's title proclaims that it is: "C++ for C Programmers". From the title, the reader would expect that the book would assume that he knew C and would teach him C++. The first sentence of the Preface would support him in this idea: "The book uses an evolutionary teaching process, with C as a starting point and C++ as a destination." The first odd thing that the reader will notice is that each chapter includes a short section on Java. Why? There is no realistic hope of teaching the reader Java in so short a space; there is no reason to think that the reader wanted the book to teach him Java. The existence of these sections is a mystery. The second odd thing that the reader will notice is that the book attempts to teach him C. Take for example, the following from the book "2.81 Assignment and Expressions In C++, assignment occurs as part of an assignment expression, which can occur in several forms. a = b + 1; This expression evaluates the right-hand side of the assignment and converts it to a value compatible with the variable on the left-hand side..." Now the above is all very well, but if the reader already knows C, he is already aware of this - why explain it to him again? The author's instructions with regard to this question, from the start of the chapter, are curious: "For the experienced C programmer, most of this chapter's material should be skimmed and read mainly with an eye for differences between C and C++. These differences will be listed in the chapter summary, which the experienced C programmer can use to determine what to selectively read about." Quite. If the reader takes the author's advice, he will skip to the chapter summary, and read a summary of the differences. An example of these is the following: "In addition to implicit conversions, which can occur across assignments and in mixed expressions, there are explicit conversions called casts. New keywords introduced in C++ for casts are static_cast, reinterpret_cast, const_cast, and dynamic_cast." As can be seen, the summary does not tell the reader what he needs to know from the chapter, it instead tells him what he should try to go back and find in the chapter. The basic organizational model here is the scavenger hunt: the reader is given a list of things to find, and a locale in which those things are hidden; he is told to flip back and forth and scan until he has found (hopefully) the new material that the author has scattered through the old. The reader could be forgiven for thinking that the author was deliberately wasting his time. The second problem with the book is that it isn't very informative. For example, take the matter of the casts that are in C++ but not C, which I used in the previous example. The full description in the chapter of the const_cast is as follows: "Two other special casts exist in C++: const_cast and dynamic cast...The const modifier means that a variable's value is nonmodifiable. Very occasionally, it is convenient to remove this restriction. Doing so is known as 'casting away constness' and is accomplished with the const_cast, as in: foo(const_cast<int>(c_var)); // used to invoke foo ..." Now, a cast is a type conversion, so the example would be much clearer if the prototype for foo() and the type of c_var were provided. Sadly, the author has presented neither. Still, the reader might hope that the extensive language guide section in the back would clarify matters. So he checks it and reads the following: "Two other special casts exist in C++: const_cast and dynamic cast...The const modifier means that a variable's value is nonmodifiable. Very occasionally, it is convenient to remove this restriction. Doing so is known as 'casting away constness' and is accomplished with the const_cast, as in: foo(const_cast<int>(c_var)); // used to invoke foo ..." The reader is almost certain to be disappointed at this point - the description in the main text and that in the language reference are word-for-word identical, right down to the same, meaningless example. The only possible justification for the over-bare descriptions of the new features in the language is to keep the book short, but the book is padded three times over: it has material the reader doesn't want to know (Java), material the reader already knows (C), and material it has already presented (the main text/language guide reprint). In the absence of justifiable reasons for why the book is the way it is, the reader is forced to assume unjustifiable reasons: that the author and the publisher either didn't know how to keep faith with the reader or that they didn't care to, or quite possibly both.
12 of 13 people found the following review helpful:
1.0 out of 5 stars
I hate this book,
By
This review is from: C++ for C Programmers (Paperback)
I had to unlearn what I learned from this book. I was in the middle of college, I had a horrible professor, and she assigned this book. The book is horribly confusing for one reason. The code examples. The editors take huge sections of code out and leave in "..." in its place. Well, you know what? I'm new and I need a freakin' example in context to figure it out. That's how I learn best. You have to string together code fragments from all over the book just to piece together one program. I got so frustrated with this book. I finally read Sam's Learn C++ in 10 Minutes and everything fell into place. That teaches you something, don't it? They had good examples and I learned right away. At least I know now I'm not an idiot. I actually saw someone's copy of the first edition and it was a good book. But it didn't have the imfamous "...". I assume like many computer company HR departments the editors don't know anything about programming. My advice is to do yourself a favor and get another book.
6 of 6 people found the following review helpful:
1.0 out of 5 stars
The book should be called C++ for C++ Programmers,
By A Customer
This review is from: C++ For C Programmers, Third Edition (3rd Edition) (Paperback)
My comment is that it is a badly badly badly badly written book. The book should be called C++ for C++ Programmers - only C++ programmers who know about C++ already can understand what C++ the book want to teach. Most of the informations are too brief. For example:1. Chapter 5. Constructors and Destructors Out of the 13 sections in the chapter, I only think section 5.1, 5.2, 5.3, little 5.6, 5.10 and 5.11 should be included there. It wasted whole 4 sections on teaching vectors, linked list, 2-D arrays, polynomial implemented by linked list. These are not core to understanding the features of C++ and should either be consolidated as one example with the sore purpose of illustrating the features of C++ or be removed altogether. Also, there is a problem with the example given in section 5.4 which wasted me several days to figure why. The example simply give you a wrong information on the use of conversion constructor. Even worse is that the core language features were either not described fully or described by single concise sentences hidden in the middle of paragraphs. For example i. Default constructor is used to initialise arrays of objects. In some other books, this important concept is described in a separate section or pointed out clearly. Instead, the book only hides the description in two sentences under section 5.1.1. One may overlook this point easily if not paying attention. ii. section 5.6 members that are classes types. The book gives an example of how a class contains members that are class type. However, the way the members' constructors are called is not explained at all. Again, some other books devote a whole section on this concept. iii. section 5.1.2 constructor initializer - the book should give more explanation on the precise syntax of constructor initializer. What about when the constructor's body is declared 2. Chapter 4 Classes I cannot imagine how after reading a chapter on classes, one can still not fully understand the difference between public and private access. And yes, after reading this book's chapter 4, which supposed to be the main chapter explaining class, I still cannot figure out the difference between private and public!!! Once again, only brief explanation on these core and basic concept is given. section 4.6.1 Scope Resolution operation - what the hell does external scope mean?? Yes, again this is another example of one-sentence explanation of core concept - the unary form of :: section 4.6.2 nested classes - this is not described in one sentence; however, only 1 page is used to described this complicated concept. 3. Example of other concepts which i was introduced by the book but do not have full understanding: namespace, iostream library. In short, if you are not a C programmer, don't expect to learn much about C++ after reading this book. And, if you are a C programmer, this book first wastes you a lot of time re-learning the basics of C in Chapter 2 and 3 and confuse you with many one-sentence descriptions of C++ core features in the subsequent chapters.
5 of 5 people found the following review helpful:
1.0 out of 5 stars
If you have to, get this from the library. Don't buy.,
By Kevin Benton "KB" (Chicago, IL United States) - See all my reviews
This review is from: C++ For C Programmers, Third Edition (3rd Edition) (Paperback)
I'm dissapointed that Ira Pohl would write a book with such low quality. His book is inappropriately titled. In his book, he clearly states Java is better than C++. If that's the case, then why is he writing a book on C++? At any rate, this book does a lot to confuse readers by throwing information at us that doesn't apply to C++ knowlege. I feel that the original version of this book (which I own) does better job. Mr. Pohl takes way too much time in this book explaining C. We're C programmers. We don't need to re-learn C. This is one book I don't want in my reference library. "The C++ Programming Language" is a much better book. I often use my local library and it's ordering resources to check out books before buying. At 40-80 bucks a pop, I can't afford to buy junk.Hits: 1) Includes brief review of STL. Misses: 1) Not worth buying. Might check out from library if really needed.
7 of 9 people found the following review helpful:
2.0 out of 5 stars
Not anywhere near as good as "A book on C",
By A Customer
This review is from: C++ For C Programmers, Third Edition (3rd Edition) (Paperback)
I purchased C++ for C programmers because I had previously purchased "A book on C" by the same author and really liked it. I definitely wish that I had not. This book lacks clarity because the author spends too much time introducing details which are not relevant to learning the language. For instance, he continually introduces new abstract data types and in the process completely clouds and confuses the subject in c++ he is supposedly trying to teach. The book should be renamed "my personal tricks in c++"
6 of 9 people found the following review helpful:
4.0 out of 5 stars
Excellent, concise book, if you know C.,
By A Customer
This review is from: C++ For C Programmers, Third Edition (3rd Edition) (Paperback)
When I started learning C++ I looked for a clear, concise book along the lines of Kernighan's and Ritchie's famous book on C. While Pohl's book does not quite come up to that standard, it was the closest to it among the books I thumbed through in the bookstore, and has been an especially good fit for an experienced C programmer like me. It is also an easier first book for learning than Stroustrup's book on C++.
2 of 3 people found the following review helpful:
4.0 out of 5 stars
Competent C programmers can gain a lot,
By A Customer
This review is from: C++ for C Programmers (Paperback)
This book is not a language reference, it's full of unique tactics and language features. People who know C Will gain a lot if they are moving to C++, However a book on purely C++ codes and syntaxes will help the learning process better.
4.0 out of 5 stars
An Obsolete Book for Obsolete Programmers,
By fredtownward "The Analytical Mind; Have Brain... (Mocksville, North Carolina, United States) - See all my reviews (VINE VOICE)
This review is from: C++ For C Programmers, Third Edition (3rd Edition) (Paperback)
I was initially dismayed by the large number of negative reviews, but now that I've completed this book I believe I understand why; this book is really intended for a very narrow target audience: very experienced C programmers with no knowledge of C++ -- i.e., Old Farts,...like me. Is there ANY school out there today teaching people C WITHOUT also teaching them C++? It seems unlikely, almost as unlikely as it would be to find a potential employer out there who is seeking Plain Old C programmers today. So if you are an Old C Dog like me looking to learn the "new" trick of C++, this book is for you and ONLY for you! I read it carefully and was able to pass a C++ test that I wouldn't have gotten a single answer right on before I read it. Anyone else looking to learn C++ would be better served by choosing C++ for Dummies or something similar. Defects? There are a number of them. First, the book does not come with a compiler or a CD-ROM. It DOES come with a URL from which you can download the COMPLETE source code referred to in the book, but you will have to obtain your own compiler, and chances are, you will have to considerably modify the comparatively ancient source code in order to get it to compile for you. There are some things that you used to be able to do in C++ that you just cannot do any longer, at least not without turning off a lot of modern ANSI compiler errors. Second, because this is intended as a textbook, there are no answers to the end of chapter exercises, at least not unless you find yourself a Teacher's Edition. Finally, I have to agree with the reviewers who question the thinking behind the "Moving from C++ to Java" section at the end of each chapter. Sure, it is somewhat interesting to see one of the chapter's C++ programs rewritten in Java, but it is nothing close to enough to learn Java from so what's the point?
2 of 4 people found the following review helpful:
1.0 out of 5 stars
Not easy to use,
By A Customer
This review is from: C++ For C Programmers, Third Edition (3rd Edition) (Paperback)
A difficult book to use. When talking about the primative type (ie INT) it discusses complex numbers? The index does not have the C terminology so that you can look up the C functions (ie malloc) to see how it is done in C++.
0 of 1 people found the following review helpful:
3.0 out of 5 stars
a somewhat scatterbrained approach,
By A Customer
This review is from: C++ for C Programmers (Paperback)
C++ is a broad subject and can be approached from many angles. Ira Pohl's approach is so non-standard, it left my head spinning. I read this book twice and still refer to it, but Pohl's PhD.-speak keeps getting in the way. If you like to read books written using down-to-earth termonology, look elsewhere...buy if you want to talk and write like a C++ guru, just imitate Pohl's literary style.
|
|
Most Helpful First | Newest First
|
|
C++ for C Programmers by Ira Pohl (Paperback - Sept. 1993)
Used & New from: $0.01
| ||