Zde je potřebný úryvek kódu:
Kód: Vybrat vše
class Polozka
{
private:
int id;
string name;
Polozka * dalsi;
protected:
bool sm;
public:
Polozka(int _id, string _name);
Polozka(int _id, string _name,bool _sm);
Polozka * getDalsi(void);
void setDalsi(Polozka * p);
virtual ~Polozka(void);
int getID(void) const;
string getName(void) const;
virtual Polozka * existuje(int id);
virtual string& vypis(string& out) const;
};
class Submenu : public Polozka
{
private:
Polozka * submenu;
public:
string& vypis(string& out) const;
Polozka * existuje(int id);
Submenu(int _id, string _name);
~Submenu(void);
void vloz(Polozka * p);
bool isSubm(void);
};
class Menu
{
friend ostream& operator << (ostream&,const Menu&); //položky v submenu odsadit o 3 mezery
private:
Polozka * polozky;
Polozka * existuje(int id) const;
Polozka * getPolozka_Submenu(int id) const;
Polozka * getPred(int id) const;
public:
Menu(void);
~Menu(void);
bool vlozZa(int id, Polozka * p);
bool vlozDo(int id, Polozka * p);//vložení do submenu ID
bool odeber(int id);//při odebrání submenu odebrat i jeho položky
bool najdi(int id, string& cesta) const;
};
//Polozka
Polozka::Polozka(int _id, string _name)
{
id=_id;
name=_name;
sm=false;
dalsi=NULL;
}
Polozka::Polozka(int _id, string _name,bool _sm)
{
id=_id;
name=_name;
sm=_sm;
dalsi=NULL;
}
Polozka::~Polozka()
{
if(dalsi!=NULL) delete dalsi;
}
//konec polozky
//Submenu
Submenu::Submenu(int _id, string _name)
{
Polozka::Polozka(_id,_name,true);
}
Submenu::~Submenu()
{
if(submenu!=NULL) delete submenu;
~Polozka(); //smaze pamet polozky
}

