Witam!
Posiadam dwie klasy, prezentujące się tak:
#ifndef OWOC_H
#define OWOC_H
#include <string>
#include <sstream>
using namespace std;
class Owoc
{
public:
Owoc(float CenaZaKilogram, float waga);
virtual ~Owoc();
virtual string toString();
float getCena();
float getWaga();
protected:
private:
float waga;
float CenaZaKilogram;
};
#endif // OWOC_H
#ifndef SKRZYNKA_H
#define SKRZYNKA_H
#include <list>
#include <string>
#include <Owoc.h>
using namespace std;
class Skrzynka
{
public:
Skrzynka(float maksymalna_ladownosc);
virtual ~Skrzynka();
float Get_MaksymalnaLadownosc(); //tylko do testow
float pobierzCenaCalkowita();
float pobierzMasaCalkowita();
bool WlozOwoc(Owoc* owoc);
bool UsunOwoc(Owoc* owoc);
void rozmiar();
string toString();
protected:
private:
float maksymalna_ladownosc;
float waga_owocow;
float wartosc_owocow;
list<Owoc*> owoce;
};
#endif // SKRZYNKA_H
W metodzie skrzynki pobierzCenaCalkowita odwołuje się do metody Owoców getCena(). Wszystko działa tak jak powinno. Jednak potrzebuje zmienić #include <Owoc.h> w klasie Skrzynka, na deklarację wyprzedzającą "class Owoc;". Jednak kiedy to zrobię, wyskakuje mi błąd przy odwołaniu do metody getCena().
error: invalid use of incomplete type 'class Owoc'
error: forward declaration of 'class Owoc'
Nie potrafię rozwiązać tego problemu, więc byłbym bardzo wdzięczny za pomoc.