The encapsulation of the desired string behavior into a class is one example of the strength of classes. Behavior and data can be associated together and presented to the user as a cohesive unit with most of the details hidden and handled by the class implementation. Classes have other powerful features which we need to examine. Unfortunately, the more powerful the feature, the greater the time required for a complete exploration. It is important for you to understand derived and templated classes, especially as templated classes are highly used in the Software Templates Library (STL). However, a thorough treatment of these topics is beyond the scope of this review. The following section provides a minimal treatment of derived classes and templates. If you are not familiar with this material, you are strongly urged to review it thoroughly. A very thorough treatment is given in Stroustrup chapters 12 and 13, but any C++ text should be sufficient.