Thinking in C++: Introduction to Standard C++ v.1: Introduction to Standard C++ Vol 1
Thinking in C++: Introduction to Standard C++ v.1: Introduction to Standard C++ Vol 1 by Bruce Eckel
- Binding:
- Paperback
- Number of Pages:
- 814
- ISBN:
- 0139798099
- Product Group:
- book
- Publisher:
- Prentice Hall
- Publication Date:
- April 19, 2000
- BooksForGeeks.com ID:
- 1087
Buy Thinking in C++: Introduction to Standard C++ v.1: Introduction to Standard C++ Vol 1 from Amazon »
Fully revised and beefed up with plenty of new material on today's Standard C++, the new edition of Bruce Eckel's Thinking in C++: Volume 1 presents an excellent tutorial to mastering this rich (and sometimes daunting) programming language. Filled with expert advice and written in a patient, knowledgeable style, this book makes an excellent choice for anyone who wants to learn C++.
It is the author's effective presentation and especially clear writing style, along with dozens of effective code examples, which help make this book a standout. The text first sets the stage for using C++ with a tour of what object-oriented programming is all about, as well as the software design life cycle. The author then delves into every aspect of C++, from basic keywords and programming principles to more advanced topics, like function and operator overloading, virtual inheritance, exception handling, namespaces and templates. C++ is a complex language, and the author covers a lot of ground using today's Standard C++, but without getting bogged down in excessive detail.
The emphasis here is on practical programming and so there is nuts-and-bolts advice on using header files, pre-processor directives and namespaces to organise code effectively. Each chapter ends with exercises (usually about two dozen), and the entire text of the book is available on the accompanying CD-ROM. (So is the second volume, which tours Standard C++ classes and other advanced topics.)
Whether you have read the first edition of this book or not, there is much to mine from Thinking in C++. This new version continues to set a high standard as an approachable and thorough tutorial for learning today's C++. --Richard Dragan, amazon.com
Topics covered: Introduction to objects, inheritance, composition, polymorphism, exception handling, analysis and design fundamentals, advantages of C++, transitioning from C, compiling and building programs, writing C++ functions, flow control, C++ operators, data types, casting, debugging tips, pointers to functions, designing re-usable C++ classes, conditional compilation and header files, access specifiers, constructors and destructors, function overloading and default arguments, using const and static effectively, inlining, namespaces, references, copy constructors, operator overloading, using new and delete for dynamic objects, virtual functions, abstract classes, introduction to templates, and iterators.
Reviews for Thinking in C++: Introduction to Standard C++ v.1: Introduction to Standard C++ Vol 1
-
One of the best C++ books
Rated out of 5 stars, March 12th, 2007
This is absolutely one of the best C++ books. It provides a short-cut for a programmer with come knowledge of C++ becoming a guru.
This book is not a text-book for C++. It is more like an experienced programmer's notebook where hints are noted and pitfalls are highlighted. If you do not have programming experience in both C and C++, you will get lost very easily.
-
Start learning C++ here
Rated out of 5 stars, February 12th, 2007
If you're looking to learn C++ as your first language, or your first OO language, good luck to you! I tried learning C++ after FORTRAN77, and in retrospect, that was a big mistake. Go and learn another object oriented language first, Python or Java or Ruby (maybe even OO Perl). You probably also want to learn a tiny bit of C, just to get used to pointers and memory management.
Done all that? Good. I will be assuming in this review that you already know how to program reasonably and you're not trying to cram C, C++ and OO into your head at once. So, you just want to learn C++. If that's the case, this is the perfect book to start with.
The book assumes that you're coming to C++ from C, and builds up from C++ as C with a stricter compiler, then onto C++ as 'object-based' language - objects as structs with functions and encapsulating initialization and memory allocation with constructors and destructors. Finally, object orientation (i.e. inheritance and polymorphism) is introduced. Rounding things off is a brief chapter on templates and iterators, but it's only a sneak preview, really.
Only the core of C++ is covered: the standard libraries and other topics (like exceptions) are deferred until volume 2. This leaves volume one as a lean and mean exposition of the core of the language. This is quite an achievement, especially as it manages to be both comprehensive and readable. The somewhat begrudgingly object oriented flavour of C++ is also on display in this book, particularly when compared to Thinking In Java from the same author: there are interesting explanations of what the compiler is getting up to behind the scenes, which should presumably assuage the fears of the more paranoid C programmer. There are copious code examples, although the expected output is not given, which would have been helpful. The introduction to the make utility will also be very welcome to many (including me).
This is not quite as good as Thinking in Java, perhaps because of its C-centric opening section, which may require you to familiarise yourself with the differences between C99 and C++ simultaneously (this is particularly apparent in the discussion of the static and const keywords).
But it's still a great introduction to C++, and it doesn't waste time with the basics of variables, loops and conditionals. Between this, the second volume, and Koenig and Moo's Accelerated C++, you have all you need to graduate onto the intermediate C++ books, like the Exceptional C++ and Effective C++ series. -
Great if you know C, reasonable if you don't or if you are going it alone
Rated out of 5 stars, November 12th, 2006
While it is possible to grasp C++ from this text as a newcomer to programming, it is not one of the easiest or most satisfying books for newcomers, or the most efficient or effective. This is because the text straight away gets very abstract and theoretical before it gets practical; the first program you write is on page 90.
This requires a lot of memorizing of things that you will struggle to understand as you read about them because they have been introduced out of context i.e. you are told how programs work 90 pages befoer you even see what one looks like.
I am doubtful if there is a place for a C++ book that claims to be accessible to both C programmers and those who have never programmed. There is quite a struggle on behalf of the newcomer. I'd give it five stars if it wasn't vying for the newcomer.
If you read the introduction it is clear that the book tries to take a different perspective than most, even the title suggests something a bit fruity. It is a very informal and indirect approach to the subject with long, informal explanations. This is to be expected from Bruce Eckel who lectures heavily; he has a very chatty approach that reads as though he is having a conversation WITH you, for instance:
"You can see how much more readable the code is when you use enumerated types. however, to some degree this is still an attemp (in C) to accomplish the things that we can do with a class in C++, so you'll see enum used less in C++."
It does succeed in the style it sets out to achieve and I'm sure that suits many people. I think the more astute and more experienced PC users will be able to cope with something more technical and scientific, and more concise than this.
However, particularly those going it alone in their study and not learning through an institution will find the chatty approach more helpful than books that are meant to be read during a university degree course. These books tend to be purely theoretical and less hands-on; think Stroussup.
It's really not a great environment out there for home enthusiasts but this is probably the best book out there for them. I am currently muddling through this book whilst watching the video tutorials from www.3dbuzz.com. They are super. -
I learned C++ in 5 days with this book (with a C background)
Rated out of 5 stars, August 12th, 2002
I have a long background in C, and had to switch to C++ for a project I was working on.This book explains everything in an easy to understand way. Bruce Eckel has an extremely good understanding of all the elements of C++, and at the same time is a very talented writer who conveys complicated concepts in short, easy to understand sections. At the same time he accomplishes to explain everything in depth so you come out of a chapter with a feeling that you've really gained a new understanding.
All this is comes with lots of simple, easy to understand code examples and excercices that put your mind to work and helps give you a complete understanding of all the language concepts.
The book is a must for anyone who want to learn C++, but I found it especially helpful coming from a C background - while the basic C language concepts are explained, the book focuses on the object oriented features of C++.

