[C con Clase] Problemas con los header e includes

jagse jagse en intercomgi.com
Mar Dic 20 17:58:06 CET 2011


Hola a todos:

 

Perdón si he duplicado el envío, el anterior lo hice con una cuenta de
Hotmail que no es con la que estoy

Registrado en la lista.

 

Tengo un problema de concepto que no me salgo.

Tiene que ver con los headers y con los includes.

Tengo una clase A tiene un atributo que es un puntero a la clase B.

Tengo una clase B que tiene un atributo que es un puntero a la clase A.

En el fichero A.h no hago ningún #include del fichero B.h, pero si declaro
la B .

En el fichero B.h  no hago ningún include del fichero A.h pero si declaro la
clase A.

En el main.cpp realizo los dos #includes de A y B y funciona correctamente.

 

Si implemento una clase C.h que tenga dos atributos que son punteros a las
clases A y B

Sin realizar ningún include en esta clase y declarando las clases A y B en
el header de C.h y

realizando el # include en el main.cpp es cuando falla.

Me da un error de compilación que dice que “Forward declaración struct A” en
la declaración de 

la clase A en C.h y lo mismo con la clase B en C.h

 

Tengo un Wascana (Eclipse) como herramienta de programación.

 

Adjunto los fuentes de los ficheros.

 

¿podría alguien explicarme el concepto y porqué falla?.

 

Gracias

 

Antonio Gómez

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111220/f62e1022/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: main.cpp
Type: application/octet-stream
Size: 223 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111220/f62e1022/attachment.obj>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: A.cpp
Type: application/octet-stream
Size: 194 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111220/f62e1022/attachment-0001.obj>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: A.h
Type: application/octet-stream
Size: 247 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111220/f62e1022/attachment-0002.obj>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: B.cpp
Type: application/octet-stream
Size: 197 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111220/f62e1022/attachment-0003.obj>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: B.h
Type: application/octet-stream
Size: 247 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111220/f62e1022/attachment-0004.obj>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: C.cpp
Type: application/octet-stream
Size: 345 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111220/f62e1022/attachment-0005.obj>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: C.h
Type: application/octet-stream
Size: 281 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111220/f62e1022/attachment-0006.obj>


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