Code:
#include
#include
#include
enum bool {false,true};
class Array
{ friend ostream &operator( istream &, Array & );
public:
Array( int = 10 );
Array( const Array & );
~Array()
{ delete [] ptr; }
int getSize() const;
const Array &operator=( const Array & );
bool operator==( const Array & ) const;
bool operator!=( const Array &right ) const
{ return ! ( *this == right ); // invokes Array:

perator==
}
int &operator[]( int );
const int &operator[]( int ) const;
private:
int size;
int *ptr;
};
Array::Array( int arraySize )
{
size = ( arraySize > 0 ? arraySize : 10 );
ptr = new int[ size ];
for ( int i = 0; i < size; i++ )
ptr[ i ] = 0;
}
Array::Array( const Array &arrayToCopy ) : size( arrayToCopy.size )
{ ptr = new int[ size ];
for ( int i = 0; i < size; i++ )
ptr[ i ] = arrayToCopy.ptr[ i ];
}
int Array::getSize() const
{ return size; }
const Array &Array:

perator=( const Array &right )
{ if ( &right != this )
{ if ( size != right.size )
{ delete [] ptr;
size = right.size;
ptr = new int[ size ];
}
for ( int i = 0; i < size; i++ )
ptr[ i ] = right.ptr[ i ];
}
return *this;
}
bool Array:

perator==( const Array &right ) const
{ if ( size != right.size )
return false;
for ( int i = 0; i < size; i++ )
if ( ptr[ i ] != right.ptr[ i ] )
return false;
return true;
}
int &Array:

perator[]( int subscript )
{ if ( subscript < 0 || subscript >= size )
{ cout