Rating:  Summary: True to its name Review: This book, one of many written on C and C++ gives a summary of the structure and syntax of these two languages, and gives an introduction to the Standard Template Library and Windows programming. It is best used as a reference and not as a textbook, since there are no exercises or coding problems in the book. Some of it is out-dated, particularly the section on Windows programming, and an overview of that topic is best done with a book on the latest version of Visual C++. The authors do attempt to be comprehensive, and treat most of the main features of C and C++, but some important topics, such as performance issues with C++ versus C, are not discussed. It is a suitable reference for those who have considerable expertise in these two languages. The first 800 paragraphs cover the C programming language, and the authors do a pretty good job of summarizing the main properties of the language. Some of the strong points in the discussion include: type modifiers, compiler pragmas, preprocessor condition testing, the functions atof, atoi, and atoll, formal versus actual parameters, function overhead, call by value and (pointer) reference, recursion, calling assembly language functions, the va_arg, va_start, and va_end macros, tradeoff between arrays and dynamic memory, quick sort, pointer arithmetic, DOS and BIOS services, memory management, memory models, the tzset function, the MAKE utility, linked lists, child processes, interrupts, invariant code, inlining, fast function calls, and code compaction. The authors give a large amount of sample code to illustrate these concepts. The next 450 paragraphs give an overview of the C++ programming language, emphasizing it as an extension of C, and not as an independent object-oriented language. There are very effective discussions on: anonymous unions, the global resolution operator, lazy evaluation (this was particularly helpful), the 3 different ways to pass parameters in C++, the inline keyword, operator overloading, the scope resolution operator, when to use inline and out-of-line functions, friend classes, constructor functions, overloading with friend functions, multiple inheritance, mutual friend classes, inline assembly language statements in method functions (particularly useful discussion), the THIS pointer, implementing polymorphism, generic functions, exception handling, namespaces, the doubly linked list class, containers, iterators, and the vector class (very well written!). I will omit reviewing the last part of the book on Windows programming since it is out of date and is treated more effectively elsewhere.
|