En este caso estamos ante un problema de definición cíclica, para definir una clase se necesita la otra y viceversa. Se ejemplifica en el siguiente código.
#ifndef CLASS1_H
#define CLASS1_H
#include "class2.h"
class Class1{
void method(Class2* param);
};
#endif
#ifndef CLASS2_H
#define CLASS2_H
#include "class1.h"
class Class2{
void method(Class1* param);
};
#endif
Para solucionar este problema, podemos indicarle al compilador que la clase existe y será definida más adelante, así, aún teniendo dependencia cíclica se puede generar el código correctamente.
Para indicarselo al compilador tan solo hay que definir class Clase antes de usarla.
#ifndef CLASS1_H
#define CLASS1_H
#include "class2.h"
class Class2;
class Class1{
void method(Class2* param);
};
#endif
#ifndef CLASS2_H
#define CLASS2_H
#include "class1.h"
class Class1;
class Class2{
void method(Class1* param);
};
#endif
0 comentarios:
Publicar un comentario