Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/05/2013, 04:07
amchacon
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 4 meses
Puntos: 28
Respuesta: [Sobrecarga de operadores] Explicación de sobre código

Los comentarios los veo correctos. Aunque en un código profesional habría que poner la definición y implementación en archivos distintos (por cuestión de orden y mantener el encapsulamiento).

Los operadores + no son correctos porque estás creando nuevas clases sobre la marcha. Has perdido la referencia de la clase original, tienes que devolver la misma clase.

Yo lo haría directo:

Código C++:
Ver original
  1. Cadena Cadena::operator+(const char *C)
  2. {
  3.     if (!C)
  4.         return *this;
  5.    
  6.     delete [] cad; // Borramos la antigua cadena
  7.     cad = new char[strlen(C)+strlen(this->cad)+1]; // creamos una nueva
  8.     strcat(cad,C);
  9.  
  10.     return *this;
  11. }

Nota: No es necesario usar el puntero this para acceder al miembro cad de la clase.

Última edición por amchacon; 28/05/2013 a las 04:12