Thinking in C++: Introduction to Standard C++, Volume One (英語) ペーパーバック – 2000/4/15
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
In the first edition of Thinking in C++, Bruce Eckel synthesized years of C++ teaching and programming experience into a beautifully structured course in making the most of the language. It became an instant classic, winning the 1995 Software Development Jolt Cola Award for best book of the year. Now, Eckel has thoroughly rewritten Thinking in C++ to reflect the final ANSI/ISO C++ standard. Every page has been revisited and rethought, with many new examples and exercises -- all designed to help you understand C++ "down to the bare metal," so you can solve virtually any problem. Eckel starts with a detailed look at objects, showing how C++ programs can be constructed from off-the-shelf object libraries. This edition includes a new, chapter-length overview of the C features that are used in C++ -- plus a new CD-ROM containing an outstanding C seminar that covers all the foundations developers need before they can truly take advantage of C++. Eckel then walks through initialization and cleanup; function overloading and default arguments; constants; inline functions; name control; references and the copy constructor; operator overloading; and more. There are chapters on dynamic object creation; inheritance and composition; polymorphism and virtual functions, and templates. (Bonus coverage of string, templates, and the Standard Template Library, can be found at Eckel's web site.) Every chapter contains many modular, to-the-point examples, plus exercises based on Eckel's extensive experience teaching C++ seminars. Put simply, Eckel has made an outstanding book on C++ even better.
"This book is a tremendous achievement. You owe it to yourself to have a copy on your shelf. The chapter on iostreams is the most comprehensive and understandable treatment of that subject I've seen to date." Al Stevens Contributing Editor, Doctor Dobbs Journal
"Eckel's book is the only one to so clearly explain how to rethink program construction for object orientation. That the book is also an excellent tutorial on the ins and outs of C++ is an added bonus." Andrew Binstock, Editor, Unix Review
"Bruce continues to amaze me with his insight into C++, and Thinking in C++ is his best collection of ideas yet. If you want clear answers to difficult questions about C++, buy this outstanding book." Gary Entsminger Author, The Tao of Objects
"Thinking in C++ patiently and methodically explores the issues of when and how to use inlines, references, operator overloading, inheritance and dynamic objects, as well as advanced topics such as the proper use of templates, exceptions and multiple inheritance. The entire effort is woven in a fabric that includes Eckel's own philosophy of object and program design. A must for every C++ developer's bookshelf, Thinking in C++ is the one C++ book you must have if you're doing serious development with C++." Richard Male Shaw Contributing Editor, PC Magazine
The Good: Bruce does a terrific job going into gory detail on all aspects of this (let's just face it) complicated language. C++ has lot's of traps and ditches to offer compared to C# or Java, and if you plan to use a lot of the advanced concepts of the language, a helper like this book is almost indispensable. If you are coming from the C realm, this books is a real hit: Bruce constantly points out the subtle differences between C and C++, and also explains how C++ is a safer language than C in almost every facet. The book does a fairly decent job in going from the simpler to the more advanced concepts, though a few times he has to use constructs that will only be covered in later chapters (Bruce does point out these outlooks though appropriately). If you are really into learning a new language, the Exercises at the end of each chapter are a terrific way to learn the new concepts.
The Bad: The text within the chapters is not very well structured. If you later on try to find something, the prose form of the sections does not really help you doing that. Also, the Index is not that great either. Often times you are sent to pages that just marginally address the keyword, and the essential introduction or explanation of the keyword may not be in the index at all. My real gripe though is with the practicality of the examples. While I previously stated that the Examples by itself are a great way to learn the languate, a lot of his examples are just plain bad ideas how to code. I understand where Bruce is coming from, he tries to find examples for all the subtleties he just covered in the section. Nevertheless, he often asks for pretty bad things to be implemented. On principle, from my own personal experience a lot of the special cases of the language are hardly ever used in real life situations.
I do recommend this book, especially if you are coming from C. Just take the examples with a grain of salt. If you are a seasoned software developer, you can probably tell anyways which of the examples or techniques should not be used on the job.
Bruce Eckel took the courageous step of making his C++ book available on-line, but this book is so good that he still made a fortune out of it. How? First of all from the visibility it got and secondly because there are people (like me) who wouldn't trade the pleasure of holding a good book in their hands with simply staring at a screen. So, go to Bruce Eckel's site (just make a search for his name, you cannot miss it) download the book and code and decide for yourself if you are happy with the e-edition or want to buy the paper one. Either way do read it!
You will get a through expositions of C++ syntax and inner workings, with explanations of why things are the the way they are. I especially liked the discussion of how virtual functions are implemented which isn't really essential to use the language but it does give more depth to your understanding and mastery of the language. If you need an even gentler introduction I would advise to buy either the 97 edition of Herb Schildt (another C++ master) "Teach yourself C++" which you can get used for about $ 1 on amazon or Ivor Horton (the clearest and most patient teacher I have ever read from) "Beginning C++" which will give you and exhaustive tutorial even on the "c part".
A couple warnings:
1) You should have at least a basic knowledge of C before reading this book.
2) This is a book on the core part of language, not on a particular compiler or platform. So you won't find info on Borland C++ or visual C++ .NET
The only issues I have with this book are:
1) The typesetting on the book is the same you have on the html edition (quite crappy) and for book that costs more than 30 bucks this is unacceptable.
2) Solutions to selected exercises are available but "for a small fee". Come on Bruce!
Second... The book is an excellent tutorial. The ingredients of a good technical tutorial include many samples in the chapter with <homework> problems at the end for practice and reinforcement. The material must be written in a style that is easy to read, and encourages one to 'come back to the book.' Eckel's book does all of this.
Third... The book must serve as a technical reference when done studying. This is tougher to answer. For what Bruce focuses on, it is an excellent technical reference in a mid-sized book approximately the same size as Stroustrup's book. A complete technical reference with examples and sample problems on C++ would probably be a 5-volume set. Eckels book is not this, nor did it try to be.
Fourth... Many people may find lots of fault with this book because it doesn't do enough of this or of that. C++ is an object oriented language (OOL) that is part of an entire family of skills/activities/business requirements. There is systems analysis (OOA), software design & architecture (OOD), the unified modelling language (UML), the art/pain of project scheduling estimation. To weigh down a tutorial book on C++ with these other subjects would support your plan for converting that third bedroom into a C++ library.
Gripe... More then a year ago (now==15Mar01), you indicated both a volume one annotated solutions guide would be available, and volume two would be produced. Tick Tick Tick... where are they?