Listing 6 Defines list_node constructor outside the nested class

//
// list.h - list interface using a nested class
// with member definitions outside the nested class
//

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

inline list::node::node(unsigned n, node *p)
       : number(n), next(p) { }

// End of File