Many of the reviews of this book mention the background of the reviewer.
If you are considering learning C++ from this book, I suggest you consider
carefully the reviews by those with a background close to yours. Pay
less attention to those with a substantially different background. But.
read this review because I will try to offer several different perspectives.
I earned my living from 1960 to my recent retirement programming digital
computers of many kinds, in many languages, and for many applications,
including about 15 years using C. I used this text in a just finished C++
course as part of my "mind rot delay program." I knew some things about
C++, but had not used it.
The instructor has taught the course for many years, and I believe has used
the same text for several years. It seems to have passed the test of time
for that environment. The second sentence of the preface states "No previous
programming experience is required." The school requires either a two
semester sequence of C programming, or a one semester C course for those
with previous programming experience. The instructor said those without
a solid background in C would be lost. I do not know anything about the
other students in the class, but almost half were gone by the final night.
One of the good things about this book is the large number of complete
sample programs. These illustrate and demonstrate features of the language.
You don't even have to type them in; you can get them from the publisher's
web site. One of the bad things about this book is the large number of
complete sample programs. Often the portion of interest is two or three
lines out of a page or two. The book is much larger than it could be.
There are a few questions in the text, but not many. There are no problem
sets or review questions to test your understanding. At the end of a few
chapters there is a suggestion to review certain topics. There are frequent
suggestions to play with a program, make changes and understand what
happens.
Almost all the provided programs are complete in one file. Real C++
applications are usually file intensive, even more so than applications
written in C. Even toy homework problems from my class often involved
five or seven files.
The book is remarkably complete for a work aimed at novices. There are
omissions, but most are minor. Some reviewers, and my instructor, said
the coverage of member initialization lists is particularly weak.
The Standard Template Library (STL) is one of the newer features of the
language. It is covered in the longest chapter of the book, 46 pages.
Other reviewers have complained that the coverage is scant. They are
right. It is scant. The chapter is called "Introducing the Standard
Template Library." The book explains a few of the container classes
and a few of the operations you can do on them. The explanations are
at a level similar to the rest of the book. It is enough to get you
started. Similar operations on other container classes have similar
names. There are several lists of function names with very brief
descriptions. For an introduction, it is adequite.
My instructor said it would take more than a semester to cover the
entire STL. I think that would be a very dull class. Look through
the STL from time to time; perhaps you will notice something that
seems useful. Then learn the immediately useful parts.
Here is a tip that I learned the hard way. The functions listed in
the ALGORITHMS section of the STL are not member functions. You can
tell if you study the sample program closely enough, but it is not
clear from the main text.
The preface promises you (the novice) will be an accomplished C++
programmer when you finish the book. I disagree. You may know a lot
about details of the language, but the book will not help you design
a solution to a problem. Not recommended for a novice.
If you have some experience programming in some language, the book
could be useful. Read it while you rework the problems from your
old text, using C++. Warning: I'm not a teacher; this is just my
suspicion.
The current edition is the Third Edition. Some of the reviews here seem to
be of an earlier edition. The Third Edition was published in 2003. That is
long ago for many computer books, but the C++ standard has not changed since
1998, except for some corrections in 2003. Most of the changes for the next
version of the standard are expected to apply only to the library.
Author(s): Herbert Schildt
Edition: 3
Publisher: McGraw-Hill Osborne Media
Year: 2003
Language: English
Commentary: +OCR
Pages: 625