[C++] error C2027: use of undefined type 'A' (zaprzyjaźnione klasy A i B)
Ostatnio zmodyfikowano 2014-04-14 15:06
stryku Temat założony przez niniejszego użytkownika |
[C++] error C2027: use of undefined type 'A' (zaprzyjaźnione klasy A i B) » 2014-03-22 03:06:27 Witam. Mam takie oto klasy: plik A.h #ifndef A_H #define A_H
#include "struktury.h" #include "B.h"
class A { private: int liczba; B * b; friend class B; public: void funkcja() { } void funkcja_2() { b->funkcja_b( this ); } };
#endif
plik B.h #ifndef B_h #define B_h
#include "struktury.h" #include "A.h" #include <vector>
class A;
class B { private: public: void funkcja_b( A * a ) { a->funkcja(); int liczba = a->liczba; } };
#endif
I mam problem poniewarz kompilator daje błędy typu: 1> error C2027: use of undefined type 'A' przy : a->funkcja(); Nie wiem jak to obejść, więc proszę Was o pomoc :) |
|
DejaVu |
» 2014-03-22 14:54:48 Musisz po pierwsze rozdzielić deklarację od implementacji, a po drugie: w plikach *.cpp zrobić include klasy, której implementację potrzebujesz. No i po trzecie: należy użyć forward declaration w plikach nagłówkowych (to akurat masz). Niemniej jednak takie zależności zazwyczaj oznaczają źle zaprojektowany kod. |
|
stryku Temat założony przez niniejszego użytkownika |
» 2014-04-14 15:06:15 Dzięki bardzo, pomogłeś :) |
|
« 1 » |