Ciao a tutti ragazzi, sto facendo un esercizio e ho un problema che da solo non riesco proprio a risolvere:

Il programma consiste in una lista (che per ora è vuota) di classi "impiegato" dentro a cui sostanzialmente c'è string nome e cognome e i vari metodi per accedervi.

codice:
class impiegato {

private:
    string nome;
    string cognome;
    int anno;
    impiegato* next;
    impiegato* prec;
Ora io voglio crearne una nuova con questo comando:

codice:
impiegato* dumbass;
    dumbass = new impiegato;

Se lo faccio nel main funziona perfettamente

(PS: new non so cosa faccia di preciso, credo allochi dello spazio ma non so bene le dinamiche)

Se invece lo eseguo in un metodo di un'altra classe "ListaOrdinata" la quale serve a gestire la lista tramite i suoi metodi il programma si termina una volta raggiunta quella riga

Eccovi il punto in cui si ferma

codice:
 void insert() {
            string nome, cognome;
            int anno;
            impiegato* next;
            impiegato* prec;
            next = NULL;
            prec = NULL;
            
            cout << "Nome: ";
            cin >> nome;
            cout << "Cognome: ";
            cin >> cognome;
            cout << "Anno: ";
            cin >> anno; 
            impiegato* nuovo;
            nuovo = new impiegato;
Arrivati a questo punto NON SO PER QUALE DANNATO MOTIVO l'effetto è questo

Nome: Pinco
Cognome: Pallino
Anno:1990
Nome:
e si termina da solo forse che non posso usare new in questo spot? Grazie a tutti per l'attenzione




Problema risolto, i cin e i cout messi in questo modo senza gli endl causano l'errore, mi sembrava figo mettere Nome: _____ e scrivere li ma evidentemente non si può