When starting your team into OOP and C++,
programmers will typically go through a series of common design errors. This
often happens because of too little feedback from experts during the design and
implementation of early projects, because no experts have been developed within
the company and there may be resistance to retaining consultants. It’s
easy to feel that you understand OOP too early in the cycle and go off on a bad
tangent. Something that’s obvious to someone experienced with the language
may be a subject of great internal debate for a novice. Much of this trauma can
be skipped by using an experienced outside expert for
training and
mentoring.
On the other hand, the fact that it is
easy to make these design errors points to C++’s main drawback: its
backward compatibility with C (of course, that’s
also its main strength). To accomplish the feat of being able to compile C code,
the language had to make some compromises, which have resulted in a number of
“dark corners.” These are a reality, and comprise much of the
learning curve for the language. In this book and the subsequent volume (and in
other books; see Appendix C), I try to reveal most of the pitfalls you are
likely to encounter when working with C++. You should always be aware that there
are some holes in the safety
net.