10.13. Putting It All Together

A Generic List Class with Iterators and Value Semantics

The String class from Chapter 7 and the Array class from this chapter make it easy for applications to access individual elements of objects by iteration with operator[](). It's not possible (or even desirable) to overload operator[]() for iteration with every class, however. The List class from Listing 5.10 on page 248, for instance, is an example where subscripts do not make sense. With containers such as List and Tree classes, tightly coupled Node objects contain pointers to other Node objects in noncontiguous memory. Iterators make it easy to access these Nodes and to hide the internal complexities of pointer management. Here is a program that demonstrates ...

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.