14.7. Interface and Implementation

Listing 10.1 on page 415 implements a template container Stack class. This design uses the full class boilerplate to implement a “bounded” stack with value semantics (each Stack has a fixed length and stores copies of the data). When we design class libraries, we would like to offer other options for Stack objects as well. Some applications, for instance, may prefer an “unbounded” Stack with pointer semantics (each Stack stores pointers to data and can never be full).

There are many ways to implement a Stack container class. When you look at all the options, there are four distinct possibilities:

  • Bounded value semantics

  • Unbounded value semantics

  • Bounded pointer semantics

  • Unbounded pointer semantics

How should we ...

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

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.