Pořadí deklarace tříd (class)
Napsal: čtv 29. kvě 2008, 22:44
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?
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. 
Kód: Vybrat vše
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();
};