Operador = sobrecarga en C ++
n el libro C ++ Primer, tiene un código para las matrices de caracteres de estilo C y muestra cómo sobrecargar el=
operador en el Artículo 15.3 Operador =.
String& String::operator=( const char *sobj )
{
// sobj is the null pointer,
if ( ! sobj ) {
_size = 0;
delete[] _string;
_string = 0;
}
else {
_size = strlen( sobj );
delete[] _string;
_string = new char[ _size + 1 ];
strcpy( _string, sobj );
}
return *this;
}
Ahora me gustaría saber por qué existe la necesidad de devolver una referenciaString &
cuando este código a continuación hace el mismo trabajo, sin ningún problema:
void String::operator=( const char *sobj )
{
// sobj is the null pointer,
if ( ! sobj ) {
_size = 0;
delete[] _string;
_string = 0;
}
else {
_size = strlen( sobj );
delete[] _string;
_string = new char[ _size + 1 ];
strcpy( _string, sobj );
}
}
por favor ayuda.