[C con Clase] Pregunta sobre un ejemplo del curso de sobrecarga de operadores...

Sorcerer sorcerer.cl en gmail.com
Mar Ene 16 23:31:02 CET 2007


Hola la todos,
tengo una duda con el siguiente código:

Cadena &Cadena::operator=(const Cadena &c) {
   if(this != &c) {
      delete[] cadena;
      if(c.cadena) {
         cadena = new char[strlen(c.cadena)+1];
         strcpy(cadena, c.cadena);
      }
      else cadena = NULL;
   }
   return *this;
}

que esta en: http://c.conclase.net/curso/index.php?cap=035

Lo que no entiendo es el motivo por el cual hacen que la función
retorne algo, y en que afecta eso. Yo probé dejandola de esta forma:

void cadena::operator=(const cadena &c) {
   if(this != &c) {
      delete[] cad;
      if(c.cad) {
         cad = new char[strlen(c.cad) + 1];
         strcpy(cad, c.cad);
      }
      else cad = 0;
   }
}

Y me funciona bien...

Usé el mismo código de los ejemplos, el de la class cadena.

Gracias por la ayuda :]




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