Zdravím, narazil jsem na problém, kdy kompilátor křičí, když mám deklaraci jednotlivých tříd za sebou v jednom souboru a v jedné nadřazené potřebuji jako private atribut zapsat ukazatel na objekt jiné třídy, která ale ze třídy nadřazené dědí. Tudíž potřebuji obě třídy deklarovat jako první, ale to samozřejmě nejde. Co s tím?
class Program
{
private:
Memory * memory;
Menu * menu;
public:
Program();
~Program();
int charToInt(char input);
char intToChar(int input);
Memory * getMemory() const { return memory; }
Menu * getMenu() const { return menu; }
};
class Memory : public Program
{
private:
Matrix * pMatrixMemory[25]; // array of pointers
int charToMemoryIndex(char input);
char memoryIndexToChar(int input);
int memoryStatus();
public:
Memory();
~Memory();
Matrix * getMatrixPointer(int memoryIndex);
bool storeMatrix(Matrix * pMatrix);
bool delMatrix(int memoryIndex);
bool delMemory();
bool createMatrix();
};
Kompilátor křičí, že při deklaraci třídy Program nemám určený typ Memory a když přehodím pořadí tříd, tak zase třída Memory hlásí, že nemá odkud dědit.
CPU: Intel Pentium (Prescott) 2,8GHz / 800MHz cache L1 16kB, L2 1MB; + CoolerMaster S9U1 Hyper TX MotherBoard: ASUS P5GD1PRO Intel 915P PCI-Express, GPU: ATI Radeon X700PRO 425MHz 128MB GDDR3 (860MHz), RAM: 2x256MB + 2x512MB 400MHz, HDD: Western Digital Caviar 320GB cache 16MB + Western Digital 1000GB 16MB cache, DVD mechanika: LG HL-DT-ST DVDRAM GSA-4082B writing: 8x DVD-R/+R, 4x DVD+RW/-RW, 3x DVD-RAM, 24x CD-R, 16x CD-RW reading: 12x DVD, 10x DVD-RW/+RW, 3x DVD-RAM, 32x CD. LCD: 19" AG Neovo F-419, CRT: 17" ADI Microscan M700, REPRO: Eltax concept 400 + Omnitronic P-250
Původně to taky bylo, ale pak jsem potřeboval ve více třídách používat funkci chartToInt a intToChar a přišlo mi zbytečné psát jí všude znova, tak jsem ji deklaroval ve třídě program a pak jsem dědil. Ale asi to teda budu muset udělat jinak
CPU: Intel Pentium (Prescott) 2,8GHz / 800MHz cache L1 16kB, L2 1MB; + CoolerMaster S9U1 Hyper TX MotherBoard: ASUS P5GD1PRO Intel 915P PCI-Express, GPU: ATI Radeon X700PRO 425MHz 128MB GDDR3 (860MHz), RAM: 2x256MB + 2x512MB 400MHz, HDD: Western Digital Caviar 320GB cache 16MB + Western Digital 1000GB 16MB cache, DVD mechanika: LG HL-DT-ST DVDRAM GSA-4082B writing: 8x DVD-R/+R, 4x DVD+RW/-RW, 3x DVD-RAM, 24x CD-R, 16x CD-RW reading: 12x DVD, 10x DVD-RW/+RW, 3x DVD-RAM, 32x CD. LCD: 19" AG Neovo F-419, CRT: 17" ADI Microscan M700, REPRO: Eltax concept 400 + Omnitronic P-250