The Art of C++ (英語) ペーパーバック – 2004/4/7
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
Learn how to apply C++ to a wide array of sophisticated applications. In his clear prose, C++ expert and the world’s leading programming author Herb Schildt, shares practical, high-powered applications of C++, revealing some of the most interesting features of the language in the process. “Pure code” subsystems that can be adapted to your own programs, financial calculations, and file utilities are discussed. A C++ interpreter, an AI-based search engine, plus a Web-based example for those programmers who interface C++ with the Internet are also included. With downloadable code offered, this resource has something for every C++ developer.
Herb Schildt (Mahomet, IL) is a leading authority on C and C++ and a best-selling author whose books have sold more than 2 million copies. His acclaimed C and C++ books include Teach Yourself C, C++ from the Ground Up, C++: The Complete Reference, Java Programmer's Reference, STL Programming from the Ground Up, Windows 98 Programming from the Ground Up, and co-author of C/C++ Annotated Archives.
I had expected that it would be filled with examples of advanced C++ code, together with advice on how to use (and not use) specific language features. Instead, it is a collection of programs that often have little relation to the C++ language.
For instance, the financial calculation programs use hardly any C++ specific features; I'm looking at one right now that doesn't even use classes. They might as well have been written in C or some other non-object-oriented language. Also, the interpreter, the subject of the final section, interprets a subset of C++ that is so small that its features are a part of C, and again, the program itself (i.e. the interpreter) doesn't even use very many C++ specific features in its implementation. One learns nothing about C++ from these.
In addition, most of the code isn't very advanced. And even the programs that make use of C++ specific features don't shed much light on how one goes about using those features.
There are some sections on Windows-specific programming that might be of value to some programmers. In addition, the descriptions of some of the problems to be solved, such as garbage collection and multithreading, might be useful to someone who's just learning about them. (They are not, of course, treated in much depth; not being the subject of the book.)
On the plus side, the book is written in an easy-to-read style. And the text does help in understanding the programs.
The book is a collection of programs that happen to be written in C++ (or in many cases, nearly C). From these, many people could learn some un-connected facts about programming, but I don't think it does much of a job teaching the "art" of programming, in C++ or in general.
However, if you actually want to compile and test the free downloadable code, you will need a Visual C++ compiler, which I do not happen to have. Without it I could not compile the garbage collector for C++ in chapter 2, the multithreading code in chapter 3, or the Internet file downloader in chapter 5. Another annoyance was the fact that several of the downloaded CHAPx.LST files are mislabeled with the wrong chapter numbers, which is unprofessional sloppiness and casts doubts, in my mind at least, about how well this code would have worked even if I could have compiled it.
I'm just glad I borrowed it from the library rather than purchasing it.
I like the author's style of explaining complex topics. The writing is very fluid and the concepts are explained sufficiently. However, this book is no different than long listing of well-document code!
I would recommend this book as a second book after an introductory text in C++. If you are capable of reading C++, this book will give you some insights in developing real-world solutions.
If you are a professional programmer who is fairly proficient in C++, you might not need this book. The examples in the book are fairly useful (see table of content), but similar code is available on the web for free. For example, if you want to study programming language issues (garbage collection, compilation), you can easily download an opensource project off the web and study it.
1) The code is available from the publishers site for free (It's not really very complicated stuff and a whole lot of it isn't really even C++)
2) Don't even bother with the code - It doesn't work. The simple Garbage collector samples in the second chapter will fail to function - The reasons for the failure show a serious lack of understanding of the standard C++ libraries. Not what you want from the author of a C++ programming book.