Portál AbcLinuxu, 10. května 2025 02:20
#include "csvReader.h"
int main()
{
csvReader r;
r.read();
}
#include "configCsvReader.h"
class csvReader
{
public:
csvReaderConfig read();
}
#include "csvReader.h"
class configItem
{
public:
virtual execute();
}
class csvReader: public configItem
{
public:
csvReaderConfig read();
}
Jde to tu cyklickou závislost mezi třídami. Pokud sem použil další .h soubor a dal do něj jenom prázdné deklarace tříd tak mi překladač píše nekompletní typ. A když použiju ukazatele tak zase nemůžu použít konstruktor třídy csvReader v třídě configCsvReader
Vubec netuším jak se z toho hnout. Nemá někdo nějaký nápad?
Díky za odpovědi
Řešení dotazu:
csvReaderConfig
.
class csvReaderConfig: public configItem
{
public:
execute();
}
csvReader
se v configCsvReader.h
vubec nevyskytuje.
tak snad na potřetí už nezapomenu napsat všechno potřebne:
//csvReaderConfig.h
#include "csvReader.h"
class csvReaderConfig: public configItem
{
private: csvReader reader;
public: execute();
}
ještě bych měl tedy jeden dotaz. jak deklarovat dědičnost třídy?
když mám zadeklarováno
class configItem;
a potřebuju zadeklarovat
class configCsvReader:public configItem;
překladač vyhodí chybu. a když zadám do deklarace jen
class configCsvReader;
překladač zase křičí při definici třídy, kdy už používám
class configCsvReader:public configItem
{
...
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.