3.1    Assignment Operator for String
    const String & String::operator = ( const String
& Value )
    {
      const int Len = strlen( Value.Buffer
);
          if( this != &Value
)        // Don't copy to yourself.
           
{
             
if( Len >= Buffer_Len)
               
{
                 
delete [ ] Buffer;
                 
getBuffer( Len );
               
}
             
for( int i = 0; i < Len; i++ )
                
Buffer[ i ] = Value.Buffer[ i ];
             
Buffer[ i ] = '\0';
           }
          return *this;
     }
QUESTION: Why disallow assignment to yourself?
    ANSWER:     
?