5.2. Object Lifetimes

Class data members may be pointers to objects, references to objects, or objects themselves. Which object type you use affects how your program creates and releases objects (their lifetimes). Let's examine each approach with a Figure object that we initialize with a Fifo and discuss the advantages and disadvantages of each approach.

Containment

Containment, where one object is inside another, is useful when a class requires its own copy of a contained object. Containment is safe because a contained object's lifetime ties to the lifetime of the containing object. In the following example, we always create a Fifo (a) every time we create a Figure (fig). Likewise, we destroy this Fifo when we release the Figure. The compiler ...

Get Navigating C++ and Object-Oriented Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.