Kompilator nie widzi klasy po zaincludowaniu plików ...

0

Witam. Problem tkwi chyba w nieodpowiednim zadeklarowaniu klasy KontenerOrganizmow w pliku Swiat.h. Oczywiście utworzenie obiektu tej klasy w mainie nie jest problemem. Proszę o pomoc bo już siedzę nad tym 3h i nie wiem o co chodzi :(.
Kod błędu : 1>error C2079: 'Swiat::kontener' uses undefined class 'KontenerOrganizmow<400>'
Swiat.h

#pragma once
#include"Organizm.h"
#include"KontenerOrganizmow.h"

#define SIZE 20

class Organizm;

template<int ilosc>
class KontenerOrganizmow;

struct Pozycja;

class Swiat {

public:

	void rysujSwiat(int x, int y);
	void wykonajTure();
	
	
	char rys_tab[SIZE][SIZE];
	KontenerOrganizmow<SIZE*SIZE> kontener;

	Swiat();
	~Swiat();

private:
	
	Pozycja zwrocPozycje(int x, int y);
	Organizm** obiektyWokol(Pozycja poz);
	Organizm* sprawdzPole(int x, int y, Organizm *org = nullptr);
	void sprawdzKolizje(Organizm *org);
	void wyczyscCtab();


	friend class Zwierze;
	friend class Roslina;
	friend class Antylopa;
	
};

KontenerOrganizmow.h

#pragma once
#include"Organizm.h"

class Swiat;
class Organizm;

template<int ilosc>
class KontenerOrganizmow {
public:

	void dodajOrganizm(Organizm *org);
	void usunOrganizm(Organizm *org);

	KontenerOrganizmow();
	~KontenerOrganizmow();

private:

	Organizm *organizmy[ilosc];

	friend class Swiat;
};
1

Pousuwaj zbędne include'y. Swiat nie potrzebuje definicji Organizm. KontenerOrganizmow nie potrzebuje definicji Organizm

Polecam lekturę i zrozumienie http://jonjagger.blogspot.com/2013/04/the-include-test.html

1

A po co te deklaracje dodatkowe? Jak includujesz jakiś plik to kompilator już zna deklaracje obiektów w nim. Nie musisz mu pomagać.

class Organizm;
 
template<int ilosc>
class KontenerOrganizmow;

class Swiat;
class Organizm;

To jest niepotrzebne. Masz te deklaracje w plikach które includujesz.

1

Zacznij od wywalenia wszystkich 4-ch widocznych deklaracji wcześniejszych.
Jeżeli nie zadziała to podaj wszystkie źródła.

1 użytkowników online, w tym zalogowanych: 0, gości: 1