Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/03/2014, 12:48
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 11 meses
Puntos: 61
Respuesta: Problemas con declaración adelantada

El compilador necesita saber SIEMPRE el tamaño de los objetos que manejas y si hay conversiones que hacer (y un largo etcetera). Si sigues esta regla, es mas sencillo entender por qué el error en un caso y en el otro no.

Al hacer

class XXX;

solo dices que el nombre XXX existe, sin mucho mas informacion.
Solo seria util en el caso que uses un puntero a XXX, donde el tamaño (de un puntero) no depende del tamaño de XXX.

Lamentablemente no es el caso, tienes metodos que retornan un objeto de tipo Cadena, y estas guardando dentro de la otra clase, en un miembro, un objeto de tipo Cadena. ¿Como podria calcularse el tamaño de un objeto de la clase Clave sin saberse el tamaño de la clase Cadena?. No es posible -> error.

Cuando usas #include "cadena.h" traes hacia el compilador, antes de compilar la clase Clave, el contenido de la clase Cadena, por lo que es posible conocer el tamaño de ella y con ello sera posible calcular el tamaño de Clave, ademas de todas las operaciones y conversiones y el etcetera asociado.
__________________
Visita mi perfil en LinkedIn