Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [C++]Costruttore di copia

    Studiando le classi e roba varia...e cercando di fare qualche programma mi sono imbattuto in un problema...implementazione del costruttore di copia per un tipo di classe per me particolare:

    codice:
    //File di specifica 
    
    typedef struct esame{
           int codice;
           const char* descrizione;
           struct esame* next;
                 };
    
    class coda{
    public:
           coda();
           coda(const coda& c);
           bool empty();
           void clear();
           void push(const esame el);
           void pop(esame& el);
           void top(esame& el);
           void stampa();       
    private:
            esame* createesame(int codice,const char* descrizione);
            esame* first;
            esame* last;
    
            };
    Io negli altri tipi di classi riesco a implementare il costruttore di copia...cioè quando ad esempio quando codice e descrizione fanno parte della classe coda...ma in questo caso non ci riesco...non so proprio da dove cominciare...anzi...l'unica cosa che so...

    codice:
    è che nell' implementazione dovrei cominciare così...
    
    coda::coda(const coda& c){
    
    .....
    
    }
    Qualcuno sa aiutarmi?
    L'impossibile richiede solo più tempo...

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    151
    codice:
    coda::coda(const coda& c){
    
    	this->first = c.first;
    	this->last = c.last;
    }

  3. #3
    Intanto ti ringrazio per la risposta....appena posso controllo con il dev....e t faccio sapere...

    GRazie!
    L'impossibile richiede solo più tempo...

  4. #4
    Quel codice non va bene perchè non copia la lista ma solo i riferimenti ad essa.
    Nel costruttore di copia devi scorrere gli elementi eseguendo, di volta in volta, una push (e quindi allocazione di memoria per l'elemento copiato)...
    Experience is what you get when you don’t get what you want

  5. #5
    non è che potresti postarmi il codice...perchè in teoria io ho capito qllo che si deve fare...ma non riesco a metterlo in pratica...Ti ringrazio!!!
    L'impossibile richiede solo più tempo...

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    bè prova a farlo e poi vediamo di darti una mano no?

    devi scorrere la lista dalla testa fino alla coda e inserire nella nuova lista i vari esami..

  7. #7
    ok ci provo....Grazie
    L'impossibile richiede solo più tempo...

  8. #8
    Questo l' ho buttato giù per il 1° elemento....ma non va per niente bene...sono anche andato a ricevimento dalla prof....me l'ha spiegato...ma ora non riesco a scriverlo....per favore..aiutoooooo


    coda::coda(const coda& c){
    c->first=0;
    c->last=0;
    esame* es=new esame;
    c->first=es;
    es.codice=c->first.codice;
    es.descrizione=c->first.descrizione;
    }
    L'impossibile richiede solo più tempo...

  9. #9
    Allora io so che devo creare una sorta di coda parallela...nella quale vado a copiare tutti gli elementi della coda originale...la prof mi ha scritto una cosa del genere...però è + uno pseudocodice che un codice vero e proprio..:

    first=0;
    last=0;

    1°elemento
    c=new Record;
    first=c;
    c->A=p1.first.A
    c->B=p1.first.B
    temp=p1.first->succ;
    while(temp=!0){
    c->succ=new record;
    c=c->succ;
    c->A=p1.temp->A;
    c->succ=0;
    p1.temp=p1.temp->succ;
    }

    una cosa del genere...ke però non riesco a implementare....


    GRAZIE DELL'aiuto!!!
    L'impossibile richiede solo più tempo...

  10. #10
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Scusa ma incomincio a pensare che tu voglia la pappa già pronta ... Nell' altro thread ti ho aiutato visto che non comprendevi l' implementazione della classe ma in questo caso conosci (grazie agli altri utenti del forum) come implementare la copia della coda eppure chiedi ancora aiuti sul codice ... Se vuoi un aiuto (almeno da parte mia) posta il codice relativo alla classe coda (ovvero la definizione della classe e dei suoi metodi) "COMMENTATO" (e sottolineo la parola COMMENTATO) in modo tale da far capire esattamente i passaggi che effettua ogni metodo. Prova anche a definire un costruttore di copia secondo le tue conoscenze ...
    C++ 4ever
    496e2062696e6172696f206e6f6e2063692061767265737469 206e656d6d656e6f2020726f7661746f203a29

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.