Classes are fundamental to object-oriented design and programming
in C++. In this article, we take a look at five fundamental patterns
of designing and using classes. We use a story, the evolution
of a seemingly simple class, to illustrate the Simple Class, Design
by Primitives, Interface Class, Abstract Base Class, and Narrow
Inheritance Interface patterns. This story and the ensuing discussion
provide us with some insight on what makes up a pattern and a
good description thereof.
Dirk Riehle. "Working with Classes and Interfaces in C++." C++ Report 12, 3 (March 2000). Page 14pp.
For the time being, a copy is available as a PDF file.