Accelerated C++: Practical Programming by Example
|
| List Price: | $49.99 |
| Price: | $31.49 & eligible for FREE Super Saver Shipping on orders over $25. Details |
Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com
52 new or used available from $26.73
Average customer review:Product Description
Why is Accelerated C++ so effective? Because it
*Starts with the most useful concepts rather than the most primitive ones: You can begin writing programs immediately.
*Describes real problems and solutions, not just language features: You see not only what each feature is, but also how to use it.
*Covers the language and standard library together: You can use the library right from the start.
The authors proved this approach in their professional-education course at Stanford University, where students learned how to write substantial programs on their first day in the classroom.
Product Details
- Amazon Sales Rank: #12235 in Books
- Published on: 2000-08-24
- Original language: English
- Number of items: 1
- Binding: Paperback
- 352 pages
Editorial Reviews
Amazon.com Review
If you don't have a lot of time, but still want to learn the latest in C++, you don't have to learn C first. You might learn more by digging into current language features and classes from the very beginning. That's the approach that's offered by Accelerated C++, a text that delves into more advanced C++ features like templates and Standard Template Library (STL) collection classes early on. This book arguably can get a motivated beginning programmer into C++ more quickly than other available tutorials.
What separates this title from the rest of the pack is that it jumps right in with samples that take advantage of the Standard C++ of today--from streams to built-in container classes, such as vectors and linked lists. Early examples are more complex than in other books, but the thoroughness and relaxed pace of the explanations will bring the novice up to speed. (Although it ships at a slender 350 pages, Accelerated C++ is packed with samples, tips, and example problems; about 10 per chapter.)
After a tour of basic C++, the book looks at more advanced C++ features, such as templates, including built-in support for containers. Besides tapping the strength of Standard C++, you also will learn to design with your own templates. (Other tutorials would defer this material until later on.) The authors have tested the approach in the book in their own teaching, and honed a set of worthwhile examples that will help anyone get familiar with these powerful language features. All examples make use of the command line and console (without GUI programs), but the advantage is that this code should run on any of today's operating systems and compilers. Later sections cover the basics of class design, which include good coverage of operator overloading and inheritance.
With its innovative approach to teaching the language, Accelerated C++ will challenge readers in the right way. It suggests that you don't need to learn C to be productive in C++. Written in an approachable style, it deserves a close look from any C++ novice. --Richard Dragan
Topics covered:
- Introduction to C++
- Console I/O with stream classes
- Basic string handling
- Loop and flow-control statements
- Arrays
- Using functions and methods
- Using Standard Template Library (STL) containers (vectors, linked lists, and maps)
- Iterators
- Sorting and generic functions
- Basic class design
- Pointers and arrays
- File I/O
- Memory-management techniques, including statically and dynamically allocated memory
- Adding stream support to custom classes
- Conversion operators
- Operator overloading
- Friend functions
- Inheritance
- Polymorphism and virtual functions
- Handle idioms for classes, including reference counting
- Quick reference to the C++ language
From the Back Cover
This is a first-rate introductory book that takes a practical approach to solving problems using C++. It covers a much wider scope of C++ programming than other introductory books I've seen, and in a surprisingly compact format.
--Dag Brück, founding member of the ANSI/ISO C++ committeeThe authors present a clear, cogent introduction to C++ programming in a way that gets the student writing nontrivial programs immediately.
--Stephen Clamage, Sun Microsystems, Inc., and chair of the ANSI C++ committeeAnyone reading just this one book and working through the examples and exercises will have the same skills as many professional programmers.
--Jeffrey D. Oldham, Stanford UniversityWhy is Accelerated C++ so effective? Because it
- Starts with the most useful concepts rather than the most primitive ones: You can begin writing programs immediately.
- Describes real problems and solutions, not just language features: You see not only what each feature is, but also how to use it.
- Covers the language and standard library together: You can use the library right from the start.
Whether you are eager to get started writing your first C++ programs, or you are already using C++ and seeking deeper understanding, the authors' unique approach and expertise make Accelerated C++ an indispensable addition to your library.
020170353XB04062001
About the Author
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.
020170353XAB04062001
Customer Reviews
Refreshingly new and very good indeed!
This is a nice change for the better! Instead of introducing the basics and then going on to class design, inheritance, and polymorphism, Andrew and Barbara delay things such as class design until the latter part of the book and instead launch straight into use of the STL, illustrated with practical examples of how to use STL containers and algorithms to solve programming problems.
As far as I am concerned, this is definitely a change for the better. Most programming projects I see heavily abuse inheritance to do things that would have better been done with templates and, as a rule, most C++ projects continue to ignore the STL, even though it is probably the most fundamental contribution to C++ programmer productivity in years. Following this book, readers are encouraged to use STL from the word go, which is as it should be.
The language and flow of the book are excellent, and the presentation is very lucid. What really shines through is that both authors are experts on the topic and really know what they are talking about. The explanations of language features are complete, correct, and precise. There is none of the muddled exposition that I find in so many other C++ books. The teaching experience that Andrew and Barbara have gained over the years is truly reflected in the prose. The book anticipates many questions and typically answers them just at the right time, namely, when the question is just about to pop into the reader's head.
Information density of the book is high. A lot of information is packed into few words, so the reader has to concentrate on what is being said, and skipping paragraphs is not something that I would recommend. The concentration, however, is well repaid by the large amount of solid knowledge that is imparted: I believe that no other C++ book manages to convey as much information per page as this one.
To me, the target audience are people who have done some programming in other languages and do not know C++. (I would not recommend the book for people who have never programmed before, unless they are very determined readers.) More seasoned C++ programmers also will get good value. And, if you are an experienced C++ programmer, but haven't much used the standard library up to now, there is still plenty of meat to be found: there are enough gems of advice in the book for it appeal to people who have considerable C++ experience.
This is an excellent effort from two experts in the field. I recommend it!
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'.
The BEST introduction book on C++ yet!
I have nothing to say about this book, except, among hundreds of C++ "intro-level" books available, this book is simply "the best". Why?
The answer is easy: Because it teachs C++ the way C++ should be taught.
Why re-invent the wheel if there are a lot of wheels available for you to use? Why learn to do things in "the hard way" if there is a lot easier ways to do?
C++ should be taught from its C-inherited no-more. In C, we used to do something in "the hard way". For example, just to use string efficiently, one would need to understand pointer properly, since C-string is pointer to char (char*). Just to dynamically store some instances of the object (to store the objects "as needed"), one would need to know how to manipulate pointers, which always lead to problems and confusion, to imprement the dynamic container.
And that's what almost all other C++ books try to teach you "first". And they will teach you what should be taught ealier "later". You, by that way, it takes longer to be productive, or even to be an able programmer.
Then, how C++ should be taught?
Bjarne Stroustrup, the father of C++, said clearly in one of his paper, named "Learning Standard C++ as a new Language", (available in his homepage) something like "Learning a programming language should support the learning of effective programming techniques. My favourite approach is to start teaching the basic language (variables, declaration, loop, etc...), together with a good library". And this is exactly the approach taught by this book.
I, personally, agree with the previous reviewer that with the approach used in this book, pointer and array are easier to understand than learning from the traditional approach.
Learning C++ from its standard library aspect can make you a productive programmer in much much shorter time than learning from the traditional approach, which begin with C-subset, and many programming techniques that you have to "unlearn" as you progress on.
In case that you're wondering how much you will learn from a book of this size. All I can tell you is, more than you can ever imagine. However, you will have to concentrate on what it's saying. And then, after you finish this book, you will have no (or almost no) problem when moving on to the more difficult (say, more advanced) books like those by Stroustrup, Lippman, Musser & Saini, Austern, Josuttis ... etc (all are my personal favourites).
The wheels had been invented. So why not just use them?
In short, this book is nothing more than the BEST book on introductory C++ ever written, period.




