- 出版社: Addison-Wesley Professional; 1 (2000年8月24日)
- 丛书名: C++ in Depth Series
- 平装: 352页
- 语种： 英语
- ISBN: 020170353X
- 条形码: 0785342703535, 9780201703535
- 商品尺寸: 18.8 x 2.8 x 23.4 cm
- 商品重量: 590 g
- ASIN: 020170353X
- 用户评分: 1 条商品评论
- 亚马逊热销商品排名: 图书商品里排第325,839名 (查看图书商品销售排行榜)
Accelerated C++: Practical Programming by Example (英语) 平装 – 2000年8月24日
Andrew Koenig is a member of the Large-Scale Programming Research Department at AT&T's Shannon Laboratory, and the Project Editor of the C++ standards committee. A programmer for more than 30 years, 15 of them in C++, he has published more than 150 articles about C++, and speaks on the topic worldwide.
Barbara E. Moo is an independent consultant with 20 years' experience in the software field. During her nearly 15 years at AT&T, she worked on one of the first commercial products ever written in C++, managed the company's first C++ compiler project, and directed the development of AT&T's award-winning WorldNet Internet service business.
0. Getting Started.
1. Working with Strings.
2. Looping and Counting.
3. Working with Batches of Data.
4.Organizing Programs and Data.
5. Using Sequential Containers and Analyzing Strings.
6. Using Library Algorithms.
7. Using Associative Containers.
8. Writing Generic Functions.
9. Defining New Types.
10. Managing Memory and Low-Level Data Structures.
11. Defining Abstract Data Types.
12. Making Class Objects Act Like Values.
13. Using Inheritance and Dynamic Binding.
14. Managing Memory (Almost) Automatically.
15. Revisiting Character Pictures.
16. Where Do We Go From Here?
Appendix A. Language Details.
Appendix B. Library Summary.
此商品在美国亚马逊上最有用的商品评论 (beta) (可能包括"Early Reviewer Rewards Program"的评论)
This is an especially great way for people who already know how to program, but want to learn C++ in particular. I come from a Perl and Python background, but want to get into the systems programming world. There is minimal belaboring of simple concepts like variables and loops, and instead the focus is on building useful abstractions and applying them to reasonable real world problems. Each chapter has some exercises at the end which cement and then extend what you learn in that chapter, but they manage not to end up feeling like college CS homework and not chew up more time than feels reasonable considering what you're trying to accomplish with the book.
The Good: This book does not talk down to the reader. It assumes that you are intelligent and implicitly expects you to have previously come into contact with either procedural or object-oriented programming. Many different topics are covered in a short space (around 300 pages in total), but the text is highly readable owing to the authors's relaxed tone, as well as their many cross-references and their detailed explanations of the examples (after all, the book's subtitle is "practical programming by example"). Equally important, the authors have provided on their website the source code for all the examples in the book (and more), packaged for different platforms. As should be obvious, modifying, compiling, and running the code in parallel to reading the text is integral to understanding the concepts being introduced. In contradistinction to many other popular volumes, this book teaches real C++, not "C with classes". To illustrate this point, let me note that pointers and arrays are only introduced in Chapter 10 (of 16). "Accelerated C++" jumps right in and describes a variety of topics that are of use to professional C++ programmers, such as standard library algorithms, templates, allocators, dynamic binding, and more.
The Bad: Some readers may find the student-grading and character-pictures examples a little boring (though what simple example isn't somewhat boring?). Also, the difficulty level of the exercises is not consistent (e.g. some have already been worked out in the provided source code). This book isn't really great as a reference: new concepts are introduced when they are needed for the purposes of the examples. This means that the chapters cannot really be read out of order. Futhermore, certain things like bitsets, switches, enums, and multiple inheritance are either relegated to the Appendices or are not mentioned at all. In a similar vein, object-oriented programming is not thoroughly discussed (as can be expected from such a short book): e.g., inheritance is introduced in chapter 13 (of 16). Finally, this book was published in 2000 and quite a bit has changed in the meantime. Most notably, we are now expecting a new standard to come out (still known as C++0x). Unfortunately, this book doesn't talk about TR1 (a specification for functionality being added to C++'s standard library) or boost (a collection of libraries offering TR1 implementations and much more), or threading in C++. A new edition of "Accelerated C++" apparently is in the works.
Lest the reader feel that I am being too negative, I note that it is impossible for one book to please everyone and cover everything, while being always up-to-date and still remaining short. In a nutshell, this book is great at what it intends to be: a fast-paced, authoritative, and pedagogically sound introduction to (1998/2003) standard C++ . This book definitely deserves 5 stars.
My two cents on recommended follow-ups:
* C++ Primer, 4th edition, by Stanley B. Lippman, Josee Lajoie, Barbara E. Moo
A great second book which can be used to solidify and expand your understanding. The "C++ Primer" is over 800 pages long, but it is so well written that it can either be read cover-to-cover or used as a reference (see also my review of it on amazon).
* Effective C++, 3rd edition, by Scott Meyers
This assumes you have already come across all of the material contained in "Accelerated C++" and in the "C++ Primer". It offers solid advice on numerous aspects of effective C++ development. Meyers also describes a few design patterns as well as more modern topics like TR1.
Don't skip the exercises at the end of each chapter, either. The book does an excellent job of carrying on from not just where it left off, but certain inferences you begin to make on your own via solving the examples at the end of each chapter.
Overall, this is a great resource, but they sure do pack a lot of terminology per square inch!