#ifndef VECTOR_H
#define VECTOR_H
#define vector Vector
class ArrayIndexOutOfBounds { };
template
class vector
{
public:
explicit vector( int theSize = 0 ) : currentSize( theSize )
{ objects = new Object[ currentSize ]; }
vector( const vector & rhs ) : objects( NULL )
{ operator=( rhs ); }
~vector( )
#ifndef WIN32
{ delete [ ] objects; }
#else
{ if( currentSize != 0 ) delete [ ] objects; }
#endif
int size( ) const
{ return currentSize; }
Object & operator[]( int index )
{
#ifndef NO_CHECK
if( index < 0 || index >= currentSize )
throw ArrayIndexOutOfBounds( );
#endif
return objects[ index ];
}
const Object & operator[]( int index ) const
{
#ifndef NO_CHECK
if( index < 0 || index >= currentSize )
throw ArrayIndexOutOfBounds( );
#endif
return objects[ index ];
}
const vector & operator = ( const vector & rhs );
void resize( int newSize );
private:
int currentSize;
Object * objects;
};
#include "vector.cpp"
#endif
#ifndef VECTOR_CPP_
#define VECTOR_CPP_
#include "vector.h"
template
const vector