Full description not available
A**G
A nearly perfect book for those new to C++ (but not new to programming)
The authors are widely considered to be among the world's foremost authorities on C++. What is perhaps even more important for the purposes of this review is that the authors are not only knowledgeable, but are also great teachers: they have used the material in this book for their professional-education course at Stanford University, and their pedagogic skills show on every page. It comes as no surprise, then, that "Accelerated C++" is consistently recommended to programmers who wish to learn C++.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. MooA 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 MeyersThis 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.Alexandros Gezerlis
R**E
Very effective alternative to other C++ books.
I'll start by saying that I probably would not have understood this book as well as I have, if I had not already been teaching myself C++ through other forums (primers and online). The thing that most of these other forums have in common is that they start with the basics and build up slowly to the more abstract concepts. The problems come during the switchovers (char* to string, procedural programming to object oriented, pointers to iterators, linked lists to containers, etc). In almost all cases you learn the more basic, and paradoxically more difficult concepts first. Then you have to 'unlearn what you have learned' in order to use the more advanced concepts.So what's different about this book? It teaches a mix of syntax and 'advanced' concepts right from the beginning. You learn the basics of loops and choice statements while using the Standard Library. You also use them in specific examples that have real world uses (the grading program in the first few chapters for example). The Standard Library is _easy_ compared to arrays, char*, rolling your own linked list, using pointers, etc. Since it takes far less time to learn, you can be writing useful programs very quickly. _Then_ the authors go on to describe some of the more 'basic' concepts, usually in terms of how they implement some of the ideas behind the Standard Library. Since you have that understanding already, things like pointers become easier not only to learn, but to understand how they can be used.I have one complaint about the book, and that's with the grading program, specifically how it appears in Chapter 4. As written, it's very confusing to actually enter data to get it to run correctly. A minor complaint though, considering how many times I thought to myself 'Aha! This is what I could use to solve this problem I've been having.' Or 'Aha! So this is what those other books were trying to say.'In a nutshell, it's a refreshing look at C++ and if not able to stand on its own, is a must have supplement for anyone learning or using the language. At the very least, it's made me question the seeming SOP of giving the Standard Library one or two chapters and calling fundamentally harder concepts 'basic' and the concepts that make programming in C++ easier being considered 'advanced'.
T**R
Great book to gain working knowledge except for lack of example output
I had taken a c++ class years prior though had never had to program with vigor using c++ in my work tasks. That changed and I needed a book to walk me through what was important in coming up to speed with learning, modifying and developing a very large c++ simulation. This book is perfect for this. This book walks one through a regimen that begins with material relevant in most programs; rather than "basic" not so relevant material. The length is not so large as to scare away; some similar books are so long that it would take a year to seriously plow through them. The book will get you up and going in using library functions and developing your own functions before it even touches class structure or inheritance which is addressed in the second half and is done is such a way that many of the advanced concepts are understood based upon the practical work covered in the first half of the book. The only critical remarks I have is that the book gives many very useful examples that really need to be followed and programmed by the reader and yet there is no output to these examples given to compare answers to. I also found that the generation of the input streams to many of the examples needed slight modifications depending upon the platform / compiler being used. Other than these two things, the book is a great buy.
TrustPilot
1 个月前
1天前