Listing 2 The class VarString

// This class takes care of the
// mechanism behind variable length
// strings
class VarString
{
private:
  enum{ALLOCINC=32};
  char *a;
  int len;
  int allocated;
  int allocinc;
  inline void grow(int n= 0);

public:
  line VarString(int n= ALLOCINC);
  inline VarString(const VarString& n);
  inline VarString(const char *);
  inline VarString(const char* s, int n);
  inline VarString(char);
  
  ~VarString(){delete [] a;}
  
  VarString& operator=(const VarString& n);
  VarString& operator=(const char *);
  
  inline const char operator[](const int i) const;
  inline char& operator[](const int i);
  
  operator const char *() const{ return a; }
  
  int length(void) const{ return len; }
  
  void add(char);
  void add(const char *);
  void add(int, const char *);
  void remove(int, int= 1);
  
  void erase(void){ len= O; }
};
/ End of File