Listing 7: The line number sequence non-inline member function definitions
// sequence.cpp #include <stdio.h> #include "deep.h" #include "sequence.h" struct line_number_sequence::list_node { unsigned number; deep_pointer<list_node> next; }; line_number_sequence:: line_number_sequence(unsigned n) { first = new list_node; first->number = n; first->next = NULL; last = first; } void line_number_sequence::add(unsigned n) { if (n != last->number) { last->next = new list_node; last = last->next; last->number = n; last->next = NULL; } } void line_number_sequence::put() const { list_node const *p; for (p = first; p != NULL; p = p->next) printf(" %4d", p->number); }