lunedì 3 dicembre 2012

Esercitazione 8

Disponibile il testo dell'esercitazione 8.

2 commenti:

  1. Salve professore volevo da lei un chiarimento riguardo all'inizializzazione di una variabile, mi spiego meglio, facendo l'esercizio 1 ho ricreato la classe studente, quando assegno all'oggetto una matricola (che nella classe è un tipo long) del tipo 0576752 mi da problemi perche se stampo le informazioni dello studente la matricola è cambiata(196074). Penso che il problema sia lo 0 iniziale perche se lo levo da il numero corretto, la mia domanda è 'il programma non dovrebbe dare comunque 576752 invece di un altro numero? a cosa è dovuto questo comportamento?'

    questa è la mia classe di prova:
    class Studente{
    public:
    Studente(string="cognome", string="nome", long=0);
    Studente(const Studente&);
    ~Studente();
    void stampa()const;
    private:
    int mat;
    string nom, cogn;
    };

    nel main scrivo:

    Studente a("Tarantino","giovanni luca",0576752);

    la ringrazio anticipatamente per la risposta!

    RispondiElimina
  2. Il motivo dello strano comportamento va ricercato in una delle primissime lezioni del corso e in particolare nelle costanti letterali. Se anteponi uno 0 a un numero questo viene interpretato come in base 8 e non in base 10 cosi' come 0X indica che e' un numero esadecimale.

    RispondiElimina