Listing 8 Class definition for float_array using a subscripting class

// fa5.h - a dynamic array of float using a
// subscripting object

#include <iostream.h>

class fa_index
   {
   friend class float_array;
public:
   fa_index &operator=(float f);
   operator float();
private:
   fa_index(float_array *f, size_t i);
   float_array *fa;
   size_t ix;
   };

class float_array
   {
   friend class fa_index;
public:
   float_array(size_t n = 0);
   float_array(const float_array &fa);
   ~float_array();
   float_array &operator=(const float_array &fa);
   float operator[](size_t i) const;
   fa_index operator[](size_t i);
   inline size_t length() const;
private:
   void extend(size_t i);
   float *array;
   size_t len;
   };

ostream &operator<<(ostream &os, const float_array &fa);

inline size_t float_array::length() const
   {
   return len;
   }
/* End of File */