![]() |
|
C++ Master Reference, by Clayton Walnum, trumpets itself on the front cover as "THE DEFINITIVE C++ REFERENCE!" This is a fib, but not the author's fib. And, in fact, it's not a bad book.
Walnum explains the purpose of his massive C++ Master Reference thusly:
No programmer, no matter how experienced, can possibly keep in his head all the information needed to program C++ applications...Using this book, you can quickly find the answers to most questions... [The book] provides an alphabetized list of keywords, functions, operators, classes, concepts, techniques, and other entry types, all formatted in an easy-to-read, quick-reference style.
An ambitious undertaking, indeed! Overall, Walnum has done a good job, albeit with many flaws and limitations, none of them entirely fatal.
C++ Master Reference is possibly a misnomer. Encyclopedia of Borland and Microsoft C++ would perhaps have been a more informative title, because that's precisely what this book is, an encyclopedia of the ANSI C++ language as rendered (in every sense of the word) by those two compilers.
After a very brief, frank, and pleasant introduction in which Walnum states his purpose and describes the alphabetization scheme used in the book, C++ Master Reference is entirely encyclopedia and encyclopedic, nearly exhaustive within the parameters described above, especially regarding library functions. It's at its least satisfactory with the base language and its keywords.
The articles are succinct, and are accompanied by examples, all of which are found on the CD-ROM. The explanations are correct, though often incomplete. The concepts and techniques articles are generally models of technical prose as far as clarity and form are concerned, but again there is the question of completeness. Articles are cross referenced to related articles rather exhaustively. It's a shame no one has yet invented a workable paper version of hypertext.
The editing and layout per se seem superb, as flawless as could reasonably be expected in a first edition. However, this book, as fat as it is, should have been a bit larger -- it should have had an index. Some of my comments which follow regarding missing material are based on my best laborious effort to locate topics that just don't seem to be there, but might conceivably be covered somewhere in the volume.
One of the most common keywords used in the examples in C++ Master Reference is "using," as in, "using namespace std." Surprise, "using" itself isn't covered. Colaterally, the "namespace" article is deficient in failing to correlate the use of "using namespace" with uses of entities defined in namespaces. Only the "foo::bar" syntax is noted.The keyword "typedef" can be encountered in many more contexts than wrappering a struct definition (as it is so often encountered in Windows includes), but only the "typedef struct foo {} bar;" form is shown in the all-too-brief article on that keyword.
The articles on the mathematical operators are exceedingly lightweight from a mathematical point of view. For example, what happens when one of the arguments to the modulus operator "%" is negative? You'll have to find out by experimentation, since such border cases aren't mentioned in this work.
The oft-encountered (in every one of the Borland CD-ROM examples, for instance) "#pragma" seems also to have gone missing.
And so forth.
C++ Master Reference can be a helpful desk reference for Borland C++ and Microsoft Visual C++ programmers, not in the least for its coverage of the esoterica of those two compilers' corpulent libraries. Unfortunately for those of us residing outside the self-absorbed Wintel microcosm, however, none of the examples on the CD-ROM will compile as given, as they are entirely specific to those two compilers.
For the targeted group, C++ Master Reference is worthwhile. For the rest of us, we'll have to wait for a second edition that is more complete in its language perspective and also includes nonWintel programmers in on the fun.
-- Jack Woehr
| Readability |
|
| Originality |
|
| Organization |
|
| Accuracy |
|
| Consistency |
|
| Depth |
|
| Timeliness |
|
| Editing |
|
| Design |
|
| Overall Value |
|
Explanation of ERCB rating scale: No stars = unacceptable, 1 Star = marginal, 2 Stars = average, 3 Stars = above average, 4 Stars = exceptional.