C ++ klasa, jej podstawowa klasa i okólnik obejmują [duplikat]
To pytanie ma już odpowiedź tutaj:
Rozwiąż błędy kompilacji z powodu cyklicznej zależności między klasami, es 9 odpowiedziFILE # 1 (foo.h):
#ifndef FOO_H_
#define FOO_H_
#include "baseclass.h"
#include "bar.h"
class Bar;
class Foo : public baseclass {
public:
bar *varBar;
};
#endif
FILE # 2 (bar.h):
#ifndef BAR_H_
#define BAR_H_
#include "foo.h"
class Foo;
class Bar {
public:
Foo *varFoo;
};
#endif
FILE # 3 (baseclass.h):
#ifndef BASECLASS_H_
#define BASECLASS_H_
#include "foo.h"
class Foo;
class baseclass {
public:
list<Foo*> L;
};
#endif
Ale pojawia się błąd kompilacji w pliku nr 1 w wierszuclass Foo : public baseclass
:
Error: expected class-name before »{« token
Jeśli dodamclass baseclass;
deklaracja klasy bevor, otrzymuję ten błąd:
Error: invalid use of incomplete type »struct baseclass«
Czy moje pytanie brzmi: jak rozwiązać zależności cykliczne za pomocą klas podstawowych?
Zapytaj, jeśli gdzieś nie dostaniesz. Próbowałem już zmienić kolejność dołączania nagłówków, ale jak dotąd nie miałem szczęścia. Dzięki za podpowiedź.
EDYCJA: Uwaga: Używam włączników strażniczych EDIT2: Nie ogranicza się to do wskaźników, więc usuwam je na wszelki wypadek. EDIT3: Dodano klasę podstawową (zapomniałem O.o) EDIT4: Teraz powinno być jasne i bez żadnych wad problem nadal występuje z tym kodem.