Utilizzare l’ereditarietà per realizzare la classe CodaConGentleman che implementa una coda di persone in cui, ad ogni estrazione, se il prossimo da servire è un uomo, questo “fa il gentleman” e lascia passare tutte le donne in coda tra lui e l’uomo successivo. Si supponga che la classe persona abbia un metodo che consenta di distinguere il sesso. In particolare: (a) si implementi l’interfaccia della classe e i soli metodi di inserimento/estrazione.

codice:
#ifndef CODACONGENTLEMAN_H_INCLUDED
#define CODACONGENTLEMAN_H_INCLUDED
#include"Persona.h"
#include<list>
class CodaConGentleman : private list<Persona>
{
    private:

    public:
    void push(Persona& p)
    {
        list<Persona>::push_back(p);
    }
    Persona& pop()
    {
        list<Persona>::iterator x = list<Persona>::begin();
        Persona daEstrarre = (*x);


        for(list<Persona>::iterator it=list<Persona>::begin();it!=list<Persona>::end();it++)
        {
            if((*it).IsGentleman() == true)
            {
                for(list<Persona>::iterator jt=it++;jt!=list<Persona>::end();jt++)
                {
                    if((*jt).IsGentleman() == false)
                    {
                        
                    }
                }

        }
        list<Persona>::pop_front();
        return daEstrarre;
}

    friend ostream& operator<<(ostream& out,const CodaConGentleman& c)
    {
        for(list<Persona>::const_iterator      it=c.list<Persona>::begin();it!=c.list<Persona>::end();it++)
        {
            out<<(*it)<<endl;
        }
        return out;
    }
};


#endif // CODACONGENTLEMAN_H_INCLUDED
QUesto è quello ke ho fatto fino ad ora?? come potrei fare?? vi prego aiutatemi è importante!!