zkouším to s děděním
typedef struct {
char odesilatel[5];
int timeout;
int delka;
char *data;
} RSdata;
//vytvori potomka fronty ukazatelu na strukturu
class fronta : public std::queue<RSdata*>
{
public:
//potomek bude mit jiny destruktor
~fronta();
};
a implementace
fronta::~fronta()
{
while (!empty()) { //uvolni objekty ve fronte
free(back()->data);
free(back());
pop();
}
}
očekávané chování: fronta před svým zánikem projde všechny struktury a pro každou strukturu uvolní paměť na kterou ukazuje data. Pak uvolni strukturu a odstraní ukazatel z fronty. Vše provádí dokud není fronta prázdná. Pak fronta zanikne.
Jen si nejsem jistý, zda jsem to implentoval správně. Vůbec mi není jasný, jak je to s voláním destruktoru předka - zda k němu dojde automaticky nebo jestli je to moje starost.
hu