1  #ifndef LIST_H
 2  #define LIST_H
 3
 4  #include <iostream>
 5
 6  class list
 7  {
 8  public:
 9           list();
10      // ökölszabály: polimorfikus osztálynak legyen 
11      // virtuális destruktora!
12      virtual  ~list();
13
14      list *remove();
15      void  append(list *lp);
16      void  insert(list *lp);
17      list *get_next() const { return next; }
18      list *get_prev() const { return prev; }
19
20      // virtuális függvény
21      virtual void print( std::ostream& os) const;
22
23      static int get_nid() { return nid; }
24  private:
25      const int  id;
26            list *prev;
27            list *next;
28
29      static int nid;
30
31      list( const list &rhs);
32      list operator=( const list *rhs);
33  };
34
35  std::ostream& operator<<( std::ostream&, const list&);
36
37  #endif /* LIST_H */
38
39