![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
09/11/2011, 12:43
|
| | Fecha de Ingreso: noviembre-2011 Ubicación: Murcia
Mensajes: 11
Antigüedad: 13 años, 3 meses Puntos: 0 | |
Respuesta: Relaciones Cíclicas entre clases Voy a poner un ejemplo porque el programa que estoy usando ya es bastante grande y así creo que se verá más fácil:
En un archivo distinto creo el main del programa:
Ahí declaro un objeto de tipo A.
------------------------------------------------------------
main.cpp:
#include "A.h"
A objeto1;
int main()
{
return 0;
}
------------------------------------------------------------
En A.h tenemos un objeto de tipo B
-----------------------------------------------------------
A.h:
#ifndef CLASE_A
#define CLASE_A
#include "B.h"
class B;
class A {
B * objeto2;
}
#endif
-----------------------------------------------------------
Y en la clase B declaramos un método que, por ejemplo, suma 1 a una variable de la clase:
-----------------------------------------------------------
B.h:
#ifndef CLASE_B
#define CLASE_B
#include "C.h"
class C;
class B {
int n = 0;
void sumar();
C * c;
}
#endif
-----------------------------------------------------------
La clase C sigue igual.
Para llamar desde el main al método sumar() de la clase B tendría que ser a través del objeto de tipo A. Yo he probado haciéndolo así:
(*(*objeto1).objeto2).sumar();
y compilaba sin problemas, pero a la hora de ejecutar me salía una Violación de Segmento, ¿dónde está el fallo? |