Chapter 8 helped you gain proficiency with classes and objects. Now it's time to master their subtleties so you can use them to their full potential. By reading this chapter, you will learn how to manipulate and exploit some of the most complicated aspects of the C++ language in order to write safe, effective, and useful classes.
This chapter provides a detailed tutorial of advanced topics, including dynamic memory allocation in objects,
static methods and members,
const methods and members, reference and
const reference members, method overloading and default parameters,
inline methods, nested classes, friends, operator overloading, pointers to methods and members, and separate interface and implementation classes.
Many of the concepts in this chapter arise in advanced C++ programming, especially in the standard template library.
Sometimes you don't know how much memory you will need before your program actually runs. As you know, the solution is to dynamically allocate as much space as you need during program execution. Classes are no exception. Sometimes you don't know how much memory an object will need when you write the class. In that case, the object should dynamically allocate memory.
Dynamically allocated memory in objects provides several challenges, including freeing the memory, handling object copying, and handling object assignment.
Chapter 8 introduced the