kolejność deklaracji klasy i funkcji zaprzyjaźnionej

0

Mam coś takiego:

Plansza.h:

#ifndef PLANSZA_H
#define PLANSZA_H

#include "main.h"

class Pole;

class Plansza
{
	public:
    Plansza();
		void ukladaj();
		void rysuj();
	private:
		Pole t[MaxX][MaxY];
};

#include "Pole.h"

#endif // PLANSZA_H

Pole.h:

#ifndef POLE_H
#define POLE_H

#include <QList>

#include "Wykorzystany.h"

#include "Plansza.h"

class Pole
{
	public:
                Pole();
		friend void Plansza::rysuj();

	private:
		Wykorzystany biezacy;
		QList <Wykorzystany> wykorzystane;
};

#endif // POLE_H

I dostaję błąd: field t has incomplete type.

Jak to zrobić żeby było dobrze? Próbowałem już różnych kombinacji i byłem pewny, że to co teraz napisałem w końcu będzie poprawne.

0

Niestety, tak nie zrobisz.
Aby zdefiniować klase Pole potrzebujesz definicji klasy Plansza aby zaprzyjaźnić metodę.
Aby zdefiniować klasę Plansza potrzebujesz definicji klasy Pole aby zadeklarować tablicę.
Musisz zrezygnować z jednego albo z drugiego.

0

Albo po prostu zaprzyjaźnić klasy ze sobą i zastosować "froward declaration".

0

Właśnie tak zrobiłem, ale myślałem, że da się zaprzyjaźnić ze sobą tylko jedną funkcję z klasy, a tu nie :/

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