Notes, Thursday, September 12


Previous page | Next page


Operators for container classes

Here are the two operators we discussed in class:
 // File: MovingObjects.h

 class MovingObjects
 {
 public:
 
     static const int CAPACITY = 100;
 
     ...
 
     void addObject( const MovingObject& mo );
     void operator += ( const MovingObjects& mos );
 
     ...
 
 private:
 
     MovingObject collection [CAPACITY];
     int used;
 };

 MovingObjects operator + ( 
     const MovingObjects& mos1, 
     const MovingObjects& mo2 );
 // File: MovingObjects.cxx

 ...

 void MovingObjects::addObject (const MovingObject& mo)
 {
     if (used == CAPACITY)
         return;
 
     collection [used] = mo;
     used++;
 }
 
 void MovingObjects::operator += ( const MovingObjects& mos )
 {
     int i;
     int howMany = mos.used;
 
     for (i = 0; i < howMany; i++)
         addObject (mos.collection [i]);
 }
 
 MovingObjects operator + ( 
     const MovingObjects& mos1, 
     const MovingObjects& mos2 )
 {
     MovingObjects result (mos1);
     result += mos2;
     return result;
 }


Previous page | Next page | Back to top

3:40 PM, Thursday, December 12, 2002