or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Sell Back Your Copy
For a $1.29 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Essential C++
 
See larger image
 
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Essential C++ [Paperback]

Stanley B. Lippman (Author)
4.1 out of 5 stars  See all reviews (30 customer reviews)

List Price: $44.99
Price: $32.57 & this item ships for FREE with Super Saver Shipping. Details
You Save: $12.42 (28%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 6 left in stock--order soon (more on the way).
Want it delivered Tuesday, January 31? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for Students. Learn more


Book Description

0201485184 978-0201485189 November 5, 1999 1
Essential C++ offers a fast-track to learning and working with C++. This book is specifically designed to bring you up to speed in a short amount of time. It focuses on the elements of C++ programming that you are most likely to encounter and examines features and techniques that help solve real-world programming challenges. Essential C++ presents the basics of C++ in the context of procedural, generic, object-based, and object-oriented programming. It is organized around a series of increasingly complex programming problems, and language features are introduced as solutions to these problems. In this way you will not only learn about the functions and structure of C++, but will understand their purpose and rationale.

Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $5 in Amazon MP3 Credit. Here's how (restrictions apply)

Frequently Bought Together

Customers buy this book with Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) $36.54

Essential C++ + Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)


Editorial Reviews

Amazon.com Review

Written for those C/C++ developers who want to deepen their programming knowledge, Essential C++ provides a short, effective tutorial to some of the most important features of the C++ language, including lessons on generic programming and templates.

Compression is the key in this admirably concise text.

The author explains C++ from the very beginning with basic syntax and language features and always uses some of the best features of today's Standard C++. Perhaps the best thing here is the integration of "generic programming" (meaning the STL library of reusable templates and algorithms for data collections like vectors, linked lists, and maps, which are built into any current C++ compiler).

By focusing on these key features, this tutorial demonstrates C++ in an up-to-the-minute style. (These "advanced" features can help simplify C++ programming from the very beginning.) This tutorial moves quickly, and by the end of the book, the author covers the basics of successful object-oriented design with C++ classes, generic programming, templates, and exception handling. Short examples are the rule here, and each chapter includes exercises for self-study (with solutions provided at the end of the book).

C++ is a very rich and very complicated programming language. Essential C++ cuts to the chase and gives the working programmer a tour of the latest and greatest language features in a compact format. As a quick-start guide to today's C++, this title complements the author's much more massive tutorial, C++ Primer. For anyone who knows a little C/C++ and wants to learn more, especially the newest features of Standard C++, this book certainly deserves a closer look. --Richard Dragan

Topics covered: C++ fundamentals, data types and arrays, pointers, flow control, functions, generic programming and STL, generic algorithms, classes, constructors and destructors, polymorphism and inheritance, abstract classes, runtime type identification, templates and template functions, exception handling.

From the Inside Flap

Gosh, but this book is short. I mean, wow. My C++ Primer is 1237 pages counting the index, title, and dedication pages. This one weighs in at just under 300 -- in boxing terms, we're talking bantamweight.

The first question, of course, is how come? Actually, there's a story to that.

I'd been pestering everyone at Disney Feature Animation for a number of years to let me work on a production. I asked directors, management types -- even Mickey, if the truth be told. In part, it was for the glamour, I suppose. Hollywood. The big screen. Also, I hold a Master of Fine Arts as well as my Comp Sci degree, and film work seemed to promise some sort of personal synthesis. What I told management, of course, was that I needed the experience in production in order to provide usable tools. As a compiler writer, I'd always been one of my own main users. It's difficult to get defensive or feel unfairly criticized when you're one of the principal complainers about your software.

The computer effects lead on the Firebird segment of Fantasia 2000 was interested in having me join the production. To kind of try things out, he asked me to write a tool to read the raw Disney camera information for a scene and generate a camera node that could be plugged in to the Houdini animation package. I wrote it in C++, of course. It worked. They liked it. I was invited to come on board.

Once on the production (thanks to Jinko and Chyuan), I was asked to rewrite the tool in Perl. The other TDs, it was explained, weren't heavy-duty programmers but knew Perl, Tcl, and so on. (TD is film industry jargon for technical director. I was the segment's software TD. There was also a lighting TD (hi, Mira) and a model TD (hi, Tim) as well as the actual computer effects animators (hi, Mike, Steve, and Tonya).) And oh, by the way, could I do this quickly, because, gosh, we have a proof of concept test to get out that the directors (hi, Paul and Gaetan) and effects supervisor (hi, Dave) are waiting on to pitch to the then head of Feature Animation (hi, Peter). No emergency, you understand, but ...

This left me in somewhat of a quandary. I can program reasonably quickly in C++ with confidence. Unfortunately, I didn't know Perl. I thought, OK, I'll read a book. But it can't be too big a book, at least not right now. And it had better not tell me too much, although I know I should know everything, only later. After all, this is show biz: The directors need a proof of concept, the artist needs a plug-in to prove the concept, and the producer -- heck, she needs a 48 hour day. I didn't need the best book on Perl -- just the right book to get me going and not steer me too far off the righteous path.

I found that book in Learning Perl by Randal Schwartz. It got me up and running, and it was fun to read. Well, as much as any computer book is fun. It leaves out gobs of good stuff. At the time, though, I didn't need all that stuff -- I needed to get my Perl scripts working.

Eventually, I realized sadly that the third edition of C++ Primer could no longer fill a similar role for someone needing to learn C++. It had just become too big. I think it's a grand book, of course -- particularly with Josee Lajoie coming on board as co-author of the third edition. But it's too comprehensive for this kind of just-in-time C++ language learning. That's why I decided to write this book.

You're probably thinking, but C++ is not Perl. That's correct. And this text is not Learning Perl. It's about learning C++. The real question is, How does one shed almost a thousand pages and still claim to be teaching anything?

Level of detail. In computer graphics, level of detail refers to how sharply an image is rendered. The invading Hun on horseback in the left front corner of the screen needs a face with eyes, hair, five o'clock shadow, clothes, and so on. The Hun way back there -- no, not the rock, silly -- well, we don't render both images with the same care for detail. Similarly, the level of detail in this book is clamped down considerably. C++ Primer, in my opinion, has the most complete but readable discussion of operator overloading in existence (I can say that because Josee was the author). However, it takes 46 pages of discussion and code examples. Here, I take 2 pages.

Core language. When I was editor of the C++ Report, I used to say that half the job of editing the magazine was in deciding what not to put in. The same is true for this text. The text is organized around a series of a programming problems. Language features are introduced to provide a solution to individual problems. I didn't have a problem that multiple or virtual inheritance could solve, so I do not discuss them. To implement an iterator class, however, I had to introduce nested types. Class conversion operators are easy to misuse and are complicated to explain. I therefore chose not to present them. And so on. The choice and order of presentation of language features are always open to criticism. This is my choice and my responsibility.

Number of code examples. C++ Primer has hundreds of pages of code that we step through in detail, including an object-oriented Text Query system and about a half-dozen fully implemented classes. Although this text is code-driven, the set of code examples is simply not as rich as that of C++ Primer. To help compensate, solutions to all the program exercises are provided in Appendix A. As my editor, Deborah Lafferty, said, ''If you are trying to teach something quickly, it is helpful to have the answers at your fingertips to reinforce the learning."

Structure of This Book

The text consists of seven chapters and two appendixes. Chapter 1 provides a description of the predefined language in the context of writing a small interactive program. It covers the built-in data types, the predefined operators, the vector and string library classes, the conditional and looping statements, and the iostream library for input and output. I introduce the vector and string classes in this chapter because I encourage their use over the built-in array and C-style character string.

Chapter 2 explains how to design and use a function and walks through the many flavors of functions supported in C++: inline, overloaded, and template functions as well as pointers to functions.

Chapter 3 covers what is commonly referred to as the Standard Template Library (STL): a collection of container classes, such as a vector, list, set, and map, and generic algorithms to operate on those containers, such as sort(), copy(), and merge(). Appendix B presents an alphabetical listing of the most commonly used generic algorithms and provides an example of how each one is used.

As a C++ programmer, your primary activity is the delivery of classes and object-oriented class hierarchies. Chapter 4 walks through the design and use of the C++ class facility to create data types specific to your application domain. For example, at Dreamworks Animation, where I do some consulting work, we design classes to do four-channel compositing of images and so on. Chapter 5 explains how to extend class design to support families of related classes in object-oriented class hierarchies. Rather than design eight independent image compositing classes, for example, we define a compositing hierarchy using inheritance and dynamic binding.

Class templates are the topic of Chapter 6. A class template is a kind of prescription for creating a class in which one or more types or values are parameterized. A vector class, for example, may parameterize the type of element it contains. A buffer class may parameterize not only the type of element it holds but also the size of its buffer. The chapter is driven by the implementation of a binary tree template class.

Finally, Chapter 7 illustrates how to use the C++ exception handling facility and fit it into the existing standard library exception class hierarchy. Appendix A provides solutions to the programming exercises. Appendix B provides a program example and discussion of the most frequently used generic algorithm. A Note on the Source Code

The full source code of the programs developed within the text as well as the solutions to the exercises is available on-line for downloading both at the Addison-Wesley Longman web site and on my home page (objectwrite). All the code has been executed under both Visual C++ 5.0 using the Intel C++ compiler and Visual C++ 6.0 using the Microsoft C++ compiler. You may need to modify the code slightly to have it compile on your system. If you make any modifications, send me a list of them (slippman@objectwrite) and I will post them, along with your name, in a modifications file attached to the solutions code. (Note that the full source code is not displayed within the text itself.) Acknowledgments

Special thanks go to Josee Lajoie, coauthor of C++ Primer, 3rd Edition. She has been a wonderful support both because of her insightful comments on the various drafts of this text and because of her unfailing encouragement. I also offer special thanks to Dave Slayton for going through both the text and the code examples with a razor sharp green pencil, and to Steve Vinoski for his compassionate but firm comments on the drafts of this text.

Special thanks also go to the Addison Wesley editorial team: Deborah Lafferty, who, as editor, supported this project from the beginning, Betsy Hardinger, who, as copyeditor, contributed greatly to the readability of the text, and John Fuller, who, as production manager, shepherded us from manuscript to bound text.

During the writing of this text, I worked as an independent consultant, multiplexing between Essential C++ and a set of (reasonably) understanding clients. I'd like to thank Colin Lipworth, Edwin Leonard, and Kenneth Meyer for their patience and good faith. Where to Find More Information

From a completely biased point of view, the two best one-volume introductions to C++ are Lippman and Lajoie's C++ Primer, 3rd Edition and Stroustrup's The C++ Programming Language, both in their third edition. Throughout the text I refer you to one or both of the texts for more in-depth information. The following books are cited in the text. (A more extensive bibliography can be found in both C++ Primer and The C++ Programming Language.)

98LIPPMAN Lippman, Stanley, and Josee Lajoie, C++ Primer, 3rd Edition, Addison Wesley Longman, Inc., Reading, MA (1998) ISBN 0-201-82470-1. 96LIPPMAN Lippman, Stanley, Inside the C++ Object Model, Addison Wesley Longman, Inc., Reading, MA (1996) ISBN 0-201-83454-5. 96bLIPPMAN Lippman, Stanley, Editor, C++ Gems, a SIGS Books imprint, Cambridge University Press, Cambridge, England (1996) ISBN 0-13570581-9. 97STROUSTRUP Stroustrup, Bjarne, The C++ Programming Language, Addison Wesley Longman, Inc., Reading, MA (1997) ISBN 0-201-88954-4. 99SUTTER Sutter, Herb, Exceptional C++, Addison Wesley Longman, Inc., Reading, MA (2000) ISBN 0-201-61562-2.

Typographical Conventions

The text of the book is set in 10.5 pt. Palatino. Program text and language keywords appear in 8.5 pt. Lucida. Functions are identified by following their name with the C++ function call operator (()). Thus, for example, foo represents a program object, and bar() represents a program function. Class names are set in Palatino.

0201485184P04062001


Product Details

  • Paperback: 304 pages
  • Publisher: Addison-Wesley Professional; 1 edition (November 5, 1999)
  • Language: English
  • ISBN-10: 0201485184
  • ISBN-13: 978-0201485189
  • Product Dimensions: 9.2 x 7.3 x 0.6 inches
  • Shipping Weight: 1 pounds (View shipping rates and policies)
  • Average Customer Review: 4.1 out of 5 stars  See all reviews (30 customer reviews)
  • Amazon Best Sellers Rank: #410,822 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

30 Reviews
5 star:
 (17)
4 star:
 (4)
3 star:
 (7)
2 star:    (0)
1 star:
 (2)
 
 
 
 
 
Average Customer Review
4.1 out of 5 stars (30 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

42 of 43 people found the following review helpful:
5.0 out of 5 stars Outstanding!, January 27, 2000
By 
Michi "Michi" (Holland Park, QLD Australia) - See all my reviews
(REAL NAME)   
This review is from: Essential C++ (Paperback)
I was rather skeptical when I first heard of this book. After all, explaining C++ in anything less than 500 or 600 pages seemed impossible.

I was very pleasantly surprised when I started reading though. This is very down-to-earth and crystal-clear reading. Easy to understand and, most importantly, you won't get overwhelmed by the sheer size of the mountain ahead of you. Naturally, you can't expect this book to turn you into a C++ guru. But that isn't its purpose. (Besides, there are *no* books that will turn you into a guru, only books that are more complete, including Stan's own C++ Primer.)

This book is excellent for *learning* C++ and getting off the ground. It achieves this goal better than any other C++ book I've read. Once you've read this book, you can graduate to more advanced material, such as the C++ Primer (which is didactically very good) or Stroustrup's book (which is didactically nowhere near as good, but works better as a reference due to its terseness). "Essential C++" provides very solid C++ grounding without neglecting any of the important parts of the language.

Highly recommended!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


9 of 9 people found the following review helpful:
3.0 out of 5 stars Compact, February 8, 2004
By 
Free Style (Austin, TX USA) - See all my reviews
This review is from: Essential C++ (Paperback)
This isn't greatest book to *learn* C++. I bought it largely on the strength of the other reviews and my experiences coding successfully in other languages but (e.g., perl, python, java, php, shell scripts, etc.). My experience with this book (even in comparison to other books I'e browsed on C/C++), it that it is written to be useful more for someone who already knows C++ or is a dedicated C programmer and wants to pick up C++.

A great author usually writes in such a way as to not be misunderstood, but I found myself hae to reread passages frequently to answer questions which went unaddressed. Some typos were also evident, even in critical places--e.g., when he introduces references and relates them to pointers (page 46). At other times he'll introduce concepts without much expalanation at all. For example, the keyword extern shows up in the sample answer to problem 2.1 without being inroduced yet. The eventual discussion of extern on 64 is only useful if you already know what it means. He also likes to inject new concepts or syntax in the main text and footnote them with comments like "I'm certainly not going to explain this guy!" on page 33, referring you instead to some other book if you happen to have it nearby. Maybe this won't appear in subsequent editions. If you already have significant C/C++ experience, then you can esily oerlook these matters; but, if you are just trying to learn C++ (especially without a dedicated C background), then the compact nature of this exposition will be a two-edged sword.

That said, I did like the sample problems and answers. I wasn't a big fan of the subject matter for the running example (a game based on sequences), but it serves as a framework for exposition. If you already know C/C++ but want to brush up on you techniques, then this may be a good purchase. Otherwise, keep looking.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


10 of 11 people found the following review helpful:
5.0 out of 5 stars At last!, May 2, 2000
This review is from: Essential C++ (Paperback)
Finally we have a short, concise introduction to C++. As Stan himself mentioned, it follows the "Learning Perl" approach. Thus this book is not meant to be an exhaustive treatise of the language, but should give a working programmer a chance to start using this complex language. It takes the Perl approach in saying: use as much as you feel comfortable with to start, and as your knowledge progresses expend on your technique. I have seen some complains about number of errors in this book. For an errata please go to http://www.develop.com/hp/slip/Errata_1st.pdf. Also http://www.develop.com/hp/slip/windows.zip contains the source code for this book. In short (literally) we have a great book, which does a great job introducing C++ and at the same time, it is small enough to be carried around. I highly recommend it.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(2)
(1)

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums





Look for Similar Items by Category


Look for Similar Items by Subject