• Viernes 8 de Noviembre de 2024, 15:43

Autor Tema:  Clases auto incluidas  (Leído 1212 veces)

josean86

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Clases auto incluidas
« en: Jueves 3 de Diciembre de 2009, 16:00 »
0
Hola,
necesito ayuda para crear clases que sigan el siguiente patron:

Código: C++
  1.  class ClaseA{
  2.     double a;
  3.     ClaseB eltoB;
  4. };
  5.  
  6. class ClaseB{
  7.     double b;
  8.     ClaseA eltoA;
  9. };
  10.  
  11. int main(){
  12. }
  13.  

Es decir, que la claseA contenga un atributo que es un objeto de la claseB, y al mismo tiempo que  que la claseB contenga un atributo que es un objeto de la claseA. El codigo que he puesto da error en la linea 3:

main.cc:6: error: ‘ClaseB’ does not name a type

¿alguna idea?¡gracias!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Clases auto incluidas
« Respuesta #1 en: Jueves 3 de Diciembre de 2009, 16:26 »
0
Proba poniendo lo siguiente antes de la clase A:

Código: C++
  1. class ClaseB;
  2.  

Igual no le veo mucha logica a esto ... ni siquiera usando punteros ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

josean86

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Clases auto incluidas
« Respuesta #2 en: Jueves 3 de Diciembre de 2009, 16:37 »
0
Gracias Eternal Idol, he probado lo que me has dicho:
Código: C++
  1. class ClaseB;
  2.  
  3. class ClaseA{
  4.     double a;
  5.     ClaseB eltoB;
  6. };
  7.  
  8. class ClaseB{
  9.     double b;
  10.     ClaseA eltoA;
  11. };
  12.  
  13. int main(){
  14. }
  15.  

Y tambien me ha dado error, pero diferente: main.cc:6: error: field ‘eltoB’ has incomplete type
Pero he probado a poner punteros (en realidad era eso lo que necesitaba, pero por simplificar habia escrito lo otro), asi que ha quedado:
Código: C++
  1. class ClaseB;
  2.  
  3. class ClaseA{
  4.     double a;
  5.     ClaseB* eltoB;
  6. };
  7.  
  8. class ClaseB{
  9.     double b;
  10.     ClaseA* eltoA;
  11. };
  12.  
  13. int main(){
  14. }
  15.  

Y con esto a compilado bien :), voy a hacer pruebas a ver si esta todo bien correcto.
Muchas gracias

--------------------------------------------------
Edito
--------------------------------------------------
Ya he hecho las pruebas pertinentes, y funciona todo perfecto, gracias de nuevo

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Clases auto incluidas
« Respuesta #3 en: Jueves 3 de Diciembre de 2009, 17:15 »
0
De nadas  :beer:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.