Location:  Home » Software Book » Accelerated C++: Practical Programming by Example  

Accelerated C++: Practical Programming by Example

Accelerated C++: Practical Programming by ExampleAuthors: Andrew Koenig, Barbara E. Moo
Publisher: Addison-Wesley Professional
Category: Book

List Price: $49.99
Buy New: $31.11
as of 9/7/2010 11:36 CDT details
You Save: $18.88 (38%)

Qty 11 In Stock


New (25) Used (24) from $27.00

Seller: aphrohead_books_uk
Rating: 4.5 out of 5 stars 90 reviews
Sales Rank: 56714

Media: Paperback
Pages: 352
Number Of Items: 1
Shipping Weight (lbs): 1.1
Dimensions (in): 9.1 x 7.3 x 0.7

ISBN: 020170353X
Dewey Decimal Number: 005.133
UPC: 785342703535
EAN: 9780201703535
ASIN: 020170353X

Publication Date: August 24, 2000
Availability: Usually ships in 1-2 business days

Similar Items:


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


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.


Customer Reviews:
Showing reviews 1-5 of 90
1 2 3 4 5 6 ...18Next »



5 out of 5 stars Refreshingly new and very good indeed!   September 1, 2000
Michi (Holland Park, QLD Australia)
82 out of 82 found this review helpful

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!


5 out of 5 stars Very effective alternative to other C++ books.   October 1, 2000
Robert Gamble (Falmouth, MA United States)
99 out of 102 found this review helpful

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'.


5 out of 5 stars The BEST introduction book on C++ yet!   October 11, 2000
Rawitat Pulam
43 out of 44 found this review helpful

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.


5 out of 5 stars Excellent C++ textbook   September 8, 2000
Dave Slayton (Denver, CO)
25 out of 25 found this review helpful

Andrew Koenig and Barbara Moo have written a terrific introductory book on C++ here. They teach you C++ by presenting programming problems to be solved, and introducing the exact language features you need to solve them, one right after the other. Very early on you find yourself using the power and simplicity of the STL to write some pretty cool programs. The programming examples are very interesting, and this book has the clearest exposition of the workings of pointers and arrays that I've ever seen. (In fact, they introduced iterators earlier in the book when using the STL, and I think introducing them in this order makes their discussion of pointers a lot easier to understand than it would be otherwise.) They eventually cover all the features of the language that a person realistically needs to accomplish just about anything, the discussion of each feature always motivated by an actual need for it to solve a problem at hand. I'm glad I've got this one on my shelf!


5 out of 5 stars great book with a unique approach to teaching the language   October 20, 2002
Sören Meyer-Eppler (Havixbeck Deutschland)
21 out of 21 found this review helpful

After having read this book I very much regret coming to C++ from a self-taught Pascal and C background - it could have been so much easier. Many introductory texts on C++ assume a background in one of the procedural languages and consequently start teaching the C subset of C++ first. This is, according to the authors' experience, counterproductive to understanding 'proper' C++ and programming true to it's paradigms and design. Thus they follow the radically new approach of discussing whatever (sometimes advanced) facilities C++ offers to solve a particular problem instead of going from one isolated language feature to the next. This leads to the somewhat unorthodox chapter sequence, which teaches the design of user types (classes) after introducing template functions (a feature many seasoned C++ programmers still don't know how to use effectively) or even stranger: the explanation of pointers and arrays (chapter 10) in terms of the standard library iterators and containers, which have been introduced as early as chapter 3. What I particularly liked are the useful and real world examples, although the book does cover the omni-present 'hello world' program, it otherwise fully delivers on it's promise of teaching 'practical programming by example' (subtitle). Due to this approach and the well constructed exercises at the end of each chapter the book gets the student writing non-trivial, useful programs taking full advantage of advanced C++ library features almost from day one. The authors also lead by example and show proper commenting and programming for flexibility techniques even in the smallest code fragments. This is in refreshing contrast to many an author's crime of showing the 'quick and easy' way first and the 'proper' way later.
If you read The Design and Evolution of C++ you'll soon notice the repeated mentioning of Koenig and Moo as two of the key players in the development of the language. Their in-depth knowledge and experience really shows in this work. Although the book is mainly aimed at beginners, veteran C++ programmers can still profit from it, even if only by loosing some more bad old C habits.


Showing reviews 1-5 of 90
1 2 3 4 5 6 ...18Next »


Subcategories
Paperback
Mass Market
Trade