I am reviewing these two books together because they have almost identical titles and both include a full version of Borland C++ 3.1. That inclusion is excellent news in one case but...
BC++ 3.1 was one of the best C compilers produced for DOS/Windows machines. If memory serves me correctly it was even certified as a compliant ISO C compiler when operating in strict ANSI mode. However C++, unlike C, has changed a tremendous amount in the last six years. This change has been not only in details of the language itself but in our understanding as to how it should be used.
BC++ 3.1 is too old a version of C++ to be useful in learning modern C++. What makes matters far worse is that the author has a, to my mind, bizarre concept of what is appropriate to cover. By day 14 we have progressed to arrays of pointers to member functions. I will lay heavy odds that many competent C++ pro-grammers have never felt a need to use such a thing.
On the other hand the author list just 46 keywords (there are currently 63 keywords and about a dozen reserved spelling providing alternatives to a number of operator symbols) prefixing the list with:
The list is a bit arbitrary, as some of the keywords are specific to a given compiler.
Sure, there are some vendor provided extensions such as
hugebut this author cannot even get close to the correct list of keywords mandated by the FDIS. Oddly he manages to include
asmthat has been there from the start.
Now let me turn to the other book. Of course the authors have the advantage of using an almost up-to-date compiler (we have had a normative addendum and a couple of amendments to C in 1995, but these are not going to concern the newcomer to the language.) They have done a respectable job of introducing the language. There are aspects of their coding methods that leave me underwhelmed. The approach can work fairly well for the 'bedroom programmer' but I would expect much more for someone who was intending to become a serious programmer.
The greatest problem that I have with this book is that the material is very uneven. The authors seem to have little understanding about what is important and what is difficult.
Let me put it this way, if this approach suits you the added value of the compiler makes the product attractive but you will certainly need to read some other books if you are to become competent. At least working through this book will not be a complete waste of time, which is what I think reading the C++ companion volume would be.
Anyone who would like to try either of these books with the intention of providing a second opinion should contact me.