Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dwie klasy w osobnych plikach wykorzystujące siebie na wzajem.

Ostatnio zmodyfikowano 2023-08-07 16:46
Autor Wiadomość
Gikonu
Temat założony przez niniejszego użytkownika
Dwie klasy w osobnych plikach wykorzystujące siebie na wzajem.
» 2023-08-07 15:08:50
Ma problem mianowicie chciał bym stworzyć dwie klasy w osobnych plikach które mają obiekt drugiej klasy wewnątrz siebie. Klasa A ma obiekt klasy B a klasa B obiekt klasy A. Tyle że klasa A to jeden plik a klasa B to drugi plik i nie wiem jak te pliki właściwie dołączy do siebie. Spróbowałem w pliku .cpp użyć instrukcji #include a w .h "class (nazwa klasy);" bo widziałem takie rozwiązanie w czyiś projektach ale nie działa.
P-180240
pekfos
» 2023-08-07 16:46:44
Nie da się czegoś takiego zrobić. Gdyby się dało, obiekt takiej klasy miałby nieskończenie duży rozmiar. Może masz na myśli że obiekt klasy A ma w sobie wskaźnik na obiekt klasy B, lub odwrotnie? Do utworzenia wskaźnika wystarczy deklaracja klasy:
C/C++
class A;

A * ptr; // OK
A obj; // Błąd, typ niekompletny w tym kontekście
Zdefiniuj klasy w plikach nagłówkowych i dołączaj jeden w drugim tylko gdy potrzebujesz faktycznego obiektu klasy. W przypadku wskaźnika wystarczy deklaracja klasy i w tym wypadku będzie potrzebna, bo cykliczne dołączanie nagłówków między sobą też jest błędne. W pliku CPP dołącz oba nagłówki by obie klasy były znane jako kompletne typy.
Razem by to wyglądało tak:
C/C++
class B;

class A
{
   
B * b;
};

class B
{
   
A a; // lub
   
A * a2;
};
P-180241
« 1 »
  Strona 1 z 1