Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
C+ C++: Programming With Objects in C and C++ Paperback – April, 1991
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Customers who bought this item also bought
Top customer reviews
This was another classroom text, and again there are no frills, no cutesy pictures, etc. -- just good solid instruction. When he says he is going to teach you object-oriented C, he means it. To that end, his first chapter is worth the price of the book alone. You really learn object orientation from that chapter and you come out with a true polymorphic linked list implementation. Other reviewers have covered the C++ details of the book quite well.
In the class in which this book was actually used, we first had to write an object-oriented threaded binary tree class -- in C. This was quite a daunting task. Not only did we have to use all the techniques of object orientation in doing it, we also had to learn what a threaded binary tree was and how to implement it. Basically, a threaded binary tree uses "threads" (bitfields embedded within a node) to point back to parent nodes, so therefore does not need stacks or recursion. Along the way we had to learn how to use a finite state machine to implement postorder traversal. With all that, I learned something that seems to otherwise be known only to computer science professors: how to write true object oriented programs in C.
Once we got done with that came the C++. The amazing thing was that now that you had a correct object-oriented class in C, it translated almost immediately and directly into C++, class structure and all -- and you got to see just how much it helps to have a language specifically geared toward object orientation (in the C version of our tree, we had to create our own malloc-like implementation in order the achieve the polymorphism -- C++ does this for you). It is unfortunate that Allen did not write that into the book (I guess he needed it for the classroom), but still, if you read the book with these comments in mind, you should see those techinques from his C and C++ linked list implementations if memory serves me correctly.
It would be wonderful to see an update to this book. It is woefully out of date. Templates were just coming into being, and Borland "kind of" had a version thereof, and Microsoft had even less than that -- it was a kludge that mimicked templates. Maybe it's a good thing. If they had been around then, maybe he wouldn't have taught us how how to look under the hood the way this book does. And really, the things Allen does teach here are timeless anyway.
One other thing: the book has a ton of typos. But they are not of the sort that impede the learning, they just test whether you are paying attention. This is one of the few books with that many typos that I would give five stars to.
But for an update, don't hold your breath. Allen has since moved on to Java and other things. Nevertheless, still a wonderful book. Not an easy read, but will more than repay the effort. (Even if you think you know a language, reading Allen's books may make you realize you didn't have a clue. That's just how good and unique his books are.)
I do have 3 criticisms of the book: 1) It's out of date. A 2nd edition that brings it up-to-date with Standard C++ would make this the best book of its kind. For the C++ beginner, though, that doesn't detract much from the book's usefullness. Everything in the book will still work. 2) There are numerous typos and minor errors in the example code which can lead to confusion. Being able to find them though, made me feel good. I knew I was really learning the subject. 3) The book would also benefit by having useful exercises at the end of each chapter for a student to perform.