Witam:
Mam taki problem:
plik control.h zawiera definicje klas: Element, Control, Button, Static oraz struktur BlendColor i ElementHolder. Cała treść pliku opatrzona jest dyrektywą:
#ifndef _CONTROL_
#define _CONTROL_
...
#endif
plik control.cpp zawiera implementacje ciał metod powyższych klas/struktur oraz na początku ma headery:
#include "control.h"
#include "dialog.h"
plik dialog.h zawiera na początku pliku prototypy:
class Element;
class Dialog;
class Control;
class Static;
class Button;
struct BlendColor;
struct ElementHolder;
no a potem definicje klas DialogManager i Dialog które zawierają elementy tych klas.
Cała treść pliku opatrzona jest dyrektywą:
#ifndef _DIALOG_
#define _DIALOG_
...
#endif
plik dialog.cpp zawiera na początku:
#include "dialog.h"
#include "control.h"
no i defiinicje ciał metod klas Dialog i DialogManager.
Błąd przy kompilacji:
1>f:\gra\dialog.h(215) : error C2079: 'Dialog::mCapElement' uses undefined class 'Element'
1>main.cpp
1>f:\gra\dialog.h(215) : error C2079: 'Dialog::mCapElement' uses undefined class 'Element'
1>Generating Code...
mCapElement jest klasy Element. Jakby był to wskaźnik do klasy Element to problemu by nie było. Pole klasy Element mają też klasy w pliku control.h Czy wobec tego jedyne wyjście to definicja 3-ego pliku nagłówkowego w której umieszczę klasę Element?