forward declaration problem


2006-03-31 05:17:51 PM
cppbuilder52
Hi, I'm having a small problem with forward declaration. Am I doing
something wrong? Please HELP ;)
compiler output:
Build
[C++ Error] Unit1.cpp(31): E2029 'Regula' must be a previously
defined class or struct
[C++ Error] Unit1.cpp(44): E2034 Cannot convert 'RegulaPliku *' to
'Regula *'
class RegulaPliku;
class Regula;
class RegulaPliku : Regula
{
public:
char nazwa[256];
int rozmiar;
};
class Regula
{
public:
int typ;
static Regula wczytajRegule()
{
Regula *r = new RegulaPliku();
return *r;
}
};
class OpisAplikacji
{
public:
char nazwa[256];
char wersja[64];
int liczba_regul;
vector<Regula>reguly;
void wczytaj(FILE* plik)
{
fread(nazwa,sizeof(nazwa),1,plik);
fread(wersja,sizeof(wersja),1,plik);
fread(&liczba_regul,sizeof(liczba_regul),1,plik);
reguly.clear();
for ( int i = 0 ; i < liczba_regul ; i++)
reguly.push_back(Regula::wczytajRegule());
}
};
class OpisyAplikacji
{
public:
vector<OpisAplikacji>opisy;
bool wczytaj(AnsiString nazwa_pliku)
{
FILE* plik = fopen(nazwa_pliku.c_str(),"rb");
if (plik == NULL)
return false;
int rozmiar_pliku = fseek(plik,0,SEEK_END);
fseek(plik,0,SEEK_SET);
while (fseek(plik,0,SEEK_SET) < rozmiar_pliku)
{
OpisAplikacji *oa = new OpisAplikacji();
oa->wczytaj(plik);
}
fclose(plik);
return true;
}
};