Listing 3 The list class definition with the node class as a nested class

//
// list.h - list interface using a nested class
//

class list
       {
public:
       list(unsigned n);
       ~list();
       void add(unsigned n);
       void print();
private:
       struct node
              {
              node(unsigned n, node *p)
                     : number(n), next(p) { }
              unsigned number;
              node *next;
              };
       node *first, *last;
       };

// End of File