Container classes
- classes that contain collections of other objects
- implements data structures
- heterogenous or homogenous
- reference semantics or value semantics
- In C++ use templates.
Common problem: code duplication solutions:
- Have a common base class for templates. All methods that don't reference
parameter are promoted to base class.
- Wrapper Class: Define generic container class using void* or base_elem*,
for example: stack
void *
. Wrapper class is base class
of templated container. For example: template
class stack_elem
stk::private
stack
void *
{}. Methods are inline calls to base methods
with a type cast. Much more code reuse. Problems: dangerous casts
and reference semantics only.
source
psfile jl@crush.caltech.edu index
wrapper_class