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 originalCadena Cadena::operator+(const char *C)
{
if (!C)
return *this;
delete [] cad; // Borramos la antigua cadena
cad
= new
char[strlen(C
)+strlen(this
->cad
)+1]; // creamos una nueva
return *this;
}
Nota: No es necesario usar el puntero this para acceder al miembro cad de la clase.