// acctList.h
// a list of accounts
// P. Conrad 4/6/05

#ifndef ACCTLIST_H
#define ACCTLIST_H

#include <iostream> // for ostream reference in printAllAccounts();

class AcctList_C
{
 private:

  struct Node
  {
    Acct_C *acct;
    Node *next;
  };

  int numAccounts;
  Node *head;
  Node *tail;

 public:
  AcctList_C();
  ~AcctList_C();  // destructor
  AcctList_C(const AcctList_C &orig); // copy constructor 
  AcctList_C & operator=(const AcctList_C & right); // assignment

  void addAccount(Acct_C &a);
  void printAllAccounts(std::ostream &out) const;
  int getNumberOfAccounts() {return numAccounts;} // inline
};

std::ostream & operator << (std::ostream & left, const AcctList_C & right);

#endif






