[C con Clase] Sobrecarga de operadores

rodolfo rosso paz rodolforossopaz en hotmail.com
Dom Jun 24 19:42:24 CEST 2007


Hola amigos.-

Revisando un ejercisio de Deitel, en el que una clase IntGrande, sobrecarga
algunos operadores, encontré lo siguiente:

Tiene un operador de conversión y una funcion de sobrecarga de operator+ :

IntGrande::IntGrande( const char *cadena )
{
   // convierte una cadena de caracteres a un valor de tipo IntGrande
}

// operador de suma; IntGrande + IntGrande
IntGrande IntGrande::operator+( const IntGrande &op2 )
{
   //  suma dos valores de tipo IntGrande
}


Y ademas sobrecarga el operador suma invocando de manera explícita al 
constructor
de conversión:

// IntGrande + cadena que representa un valor entero grande
IntGrande IntGrande::operator+( const char *op2 )
{
   // convierte op2 en un IntGrande, e invoca a
   // operator+ para dos objetos IntGrande
   return *this + IntGrande( op2 );

} // fin del operador operator+


Pregunta: ¿ Si tengo ya una sobrecarga que suma dos IntGrandes. Necesito
acaso una sobrecarga que invoque de manera explícita al constructor de 
conversión ?
No se supone que el compilador lo hace de manera automática, convirtiendo la 
cadena
a IntGrande y luego sumándola con el otro IntGrande.

¿ Hay alguna razón en especial para esa sobrecarga explícita ?
¿ no siempre es segura la manera implícita ?

Tenganme paciencia, que Dios los bendiga


Rodolfo

_________________________________________________________________
MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/





Más información sobre la lista de distribución Cconclase