Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Dubbio su C++ (ad oggetti)

    codice:
    Date &Date::operator++() {  //questo qui dovrebbe essere l'overloading
    helpIncrement();            //di un operatore che resituisce un oggetto
    return *this; 15 }          //corrisponde a ++d
    
    Date Date::operator(int) {  //questo invece resituisce un valore
    Date temp = *this;          //e corrisponde a d++
    helpIncrement();
    return temp; }
    Allora...il mio professore dice che il primo restituisce un oggetto, il secondo un valore: entrambi di tipo Date.
    A me sembra che tutte e due restituiscano un oggetto solo che il
    primo restituisce l'oggetto attuale ed il secondo invece restituisce l'oggetto
    prima dell'applicazione helpIncrement() sull'oggetto.
    Non ho capito perké in uno mette la & commerciale e nell'altro il parametro int.
    O è proprio quella la differenza per farsi resituire un oggetto ed un valore?
    Spero di essermi spiegato bene...vi ringrazio in anticipo per le risposte.
    Scusa, e di che ti meravigli?
    Secondo te, tra la morte di Gesù e la sua Resurrezione...
    ...chi è stato il "Figlio di Dio ad interim"?

  2. #2
    Utente bannato
    Registrato dal
    Dec 2003
    Messaggi
    562
    Che qualcuno mi blocchi subito se stò dicendo una bufala!

    il primo, proprio grazie a quella &, si riferisce all'oggetto operator
    mentre il secondo ti da il relativo valore

  3. #3
    Originariamente inviato da web@web
    Che qualcuno mi blocchi subito se stò dicendo una bufala!

    il primo, proprio grazie a quella &, si riferisce all'oggetto operator
    mentre il secondo ti da il relativo valore
    è quello che ho pensato anch'io...se qualcuno può confermare mi toglie un dubbio.
    Sai cosa non mi convince?

    che poi sto prof ha detto:

    "++d lo potete usare come oggetto, per esempio (++d).setDate(); d++ no."
    Solo che dopo abbiamo visto che il compilatore non da errore neanche con d++ cioè (d++).setDate(); solo che in questo caso è un valore che si perde...ma non mi è chiaro come mai...anche se questo è un valore di tipo Date...lo si possa usare come un oggetto richiamando i suoi metodi...

    Ho le idee confuse anche in testa quindi spero di essermi riuscito a spiegare.
    Scusa, e di che ti meravigli?
    Secondo te, tra la morte di Gesù e la sua Resurrezione...
    ...chi è stato il "Figlio di Dio ad interim"?

  4. #4
    return *this; 15 } //corrisponde a ++d

    Che ci sta a fare 15 dopo un return? Non credo si possa neanche compilare

  5. #5

    Re: Dubbio su C++ (ad oggetti)

    [QUOTE]Originariamente inviato da iDleR
    codice:
    Date &Date::operator++() {  //questo qui dovrebbe essere l'overloading
    helpIncrement();            //di un operatore che resituisce un oggetto
    return *this; 15 }          //corrisponde a ++d
    
    Date Date::operator(int) {  //questo invece resituisce un valore
    Date temp = *this;          //e corrisponde a d++
    helpIncrement();
    return temp; }
    Il 15 non serve a niente...
    A parte questo.. la differenza fra i due metodi sta nel fatto che il primo restituisce un riferimento allo stesso oggetto (con la & si indicano i riferimenti) ... mentre col secondo si ottiene una copia dell'oggetto membro a memtro...

    Ti faccio un esempio:

    Se ho un oggetto Date data1 e faccio data1++ l'oggetto data1 viene modificato. Viceversa se faccio data2=data1+5; ottengo un oggetto data2 con valore data1+5 ma l'oggetto data1 non viene modificato.


  6. #6
    ehm..il 15 sarà uscito perché dovevo scrivere alt+125 credo


    scusa...ma copia dell'oggetto membro a membro significa che cmq mi restituisce un oggetto? Perché per il prof il secondo restituisce un valore, non un oggetto...e ci ha tenuto a specificarlo.
    Scusa, e di che ti meravigli?
    Secondo te, tra la morte di Gesù e la sua Resurrezione...
    ...chi è stato il "Figlio di Dio ad interim"?

  7. #7
    restituisce un oggetto Date

  8. #8
    chi dei due? O_o
    o tutti e due?
    Scusa, e di che ti meravigli?
    Secondo te, tra la morte di Gesù e la sua Resurrezione...
    ...chi è stato il "Figlio di Dio ad interim"?

  9. #9
    entrambi, solo ceh il primo è l'oggetto stesso mentre il secondo è un altro oggetto.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.