Books like this irritate me. The authors know what they are writing about and their general text is informative and readable. What muddies it all is the source code. Part of the problem comes from Microsoft's horrible coding style. They will insist on using all upper case identifiers for things that are not pre-processor identifiers. All upper case is tiring to read at the best of times but for excellent reasons C allocated its use to a very specific purpose (what you see is not what the compiler sees). However that is not an excuse for the authors following Microsoft's bad example.
Another irritant is coming across pages of purposeless output. What conceivable benefit does the reader get from two and a half pages of output the last 77 lines consist of:
Executing job
where
xis replaced successively by the integers 24 to 99 (that is 76 lines, the last one is
DPQ2 thread exiting) This is not the only example of sheer space filling. Commenting has been completely abused. For example, on page 432, we have a function in which the first line of the function is separated from the next by 19 lines of comment. The comment is tutorial and so does not belong as a comment. Large blocks of comment obscure the code and make it harder to follow. The sheer complexity of some of the code leaves me worried. Seeing a constructor for class with ten initialisers (some empty) is a little worrying. But when I look back and find that the class has both a public and a private base (multiple inheritance) and contains two private classes, one of which itself contains a private class that contains a private
structI begin to wonder about the design. The body of the constructor contains a
whileloop which contains an
ifnested in an
if.
This basically good book on an important subject is been marred by poor presentation and coding style that makes it hard work to read. I am far from convinced that this complexity is essential to the subject.
If someone volunteers to provide a second opinion, I would be happy to let them have the review copy.