11.10. Polymorphism with a Generic PtrList Class

The template List class in “A Generic List Class with Iterators and Value Semantics” on page 460 manipulates Node objects containing generic types. While value semantics are both desirable and useful, a container class with value semantics can store only homogeneous objects (all the same type). To support polymorphic programming, we need a template List class that supports pointer semantics. With pointer semantics, a List manipulates Node objects containing pointers to objects. These pointers may point to objects of the same type or to heterogeneous objects related by public inheritance.

Pointer semantics are also efficient. Copying objects is not necessary when we place pointers in a List, and ...

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.