Salve questo è ilmio codice
class lista
{
private:
int valore;
lista *pross, *prec;
public:
lista(int = 0);
~lista();
void PuntaSuccessivo(lista *DovePuntare);
void PuntaPrecedente(lista *DovePuntare);
lista *vai_al_successivo(void);
lista *vai_al_precedente(void);
void InserisciValore(int NuovoValore);
int RestituisciValore(void);
void CreaLista(lista *start);
void ordina(lista *start);
void VisualizzaLista(lista *start);
lista *rovescia(lista *start);
class listaplus : public lista
{
public: void operator++()
{
lista *temp=start;
if (temp == NULL) { cout<<"Lista Vuota"<<endl; system("PAUSE");return;}
else
{
while(temp!=NULL){
temp->InserisciValore(temp->RestituisciValore()+3);
temp=temp->vai_al_successivo();}
}
int main (void)
{
lista start = null;
listaplus start2=null
++(*start2);
}
Nel main ovviamente ci sono le chiamate alle funzioni crealista ecc ecc ce vi risparmio.
Io lavoro sulla variabile start dichiarata come lista.Il mio problema e che la funzione operator++ esendo dichiarata nella sottoclasse listaplus ovviamente lavora su di essa, ma io voglio farla lavorare su star(dichiarato di tipo lista).Il problema e che nn so come far passare alla fuzione operator++ il puntatore all'oggetto di tipo lista(start).Nel codice che ho postato, quando richiamo la funzione, mi dice che start non è dichiarata, se usassi this al posto di start ovviamente mi dice che è vuota.Quindi come faccio a passare l'oggetto start o per lo meno far lavorare la funzione operato++ su start e non su start2??
Grazie spero di essere stato chiaro, in caso contrario urlatemi addosso e cerchero di rispiegarvi il problema.Tks a tutti.