Witam.
Mam klase typu a
i w pliku naglowkowym: a.h chcę zdefiniować pole typu klasy b .
Błąd jaki mi wywala:
error: 'typB’ does not name a type
Jak temu zaradzić?
0
0
Dodać
class b;
przed deklaracją klasy a?
0
Jeżeli chcesz zrobić konstrukcje w stylu:
class A{
B b;
};
to klasa B musi być w pełnie zdefiniowana, najlepiej przez dodanie pliku nagłówkowego z jej strukturą. Jeżeli natomiast chcesz mieć w klasie A wskaźnik lub referencję do klasy B to wystarczy dodać, jak już napisano, class B;:
class B;
class A{
B* ptrB;
B& refB;
};
Jest to niezbędne, gdy chcesz zrobić krzyżowe deklaracje klas, tzn mieć w klasie A pole klasy B i w klasie B pole klasy A, np. gdy masz klasy dzieci i rodzice i chcesz u dzieci przechowywać kto jest rodzicem i u rodziców kto jest dzieckiem.