Previous |Next |

 

3    Operators Done as Member Functions


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:      ?
 
Previous |Next |