[C++] Chiarimento sintassi

oleg.fresi
Ho tra le mani un pezzo di codice ma non riesco a capire la sintassi di questo. C'è una certa classe date e una funzione che restituisce un oggetto del suo tipo:
Date returnDate()
{
      return Date{05, 10, 2008};
}

cout << "Return date: " << returnDate().shortForm() << endl;


shortForm è una funzione dichiarata all'interno della classe date che restituisce una stringa del tipo " mm, gg, aa ". Ciò che non capisco di questo codice è: come fa returnDate che è una funzione ad accedere ad una funzione membro della classe Date.
Potreste chiarirmi questo dubbio per favore?

Risposte
apatriarca
Credo il codice sia semplicemente sbagliato. Devi chiamare la funzione e quindi scrivere [inline]returnDate().shortForm()[/inline].

oleg.fresi
Si hai ragione, ho trascritto il codice e ho dimenticato le parentesi. Rimane comunque il dubbio.

vict85
La funzione ritorna una variabile di tipo Date; quest'ultima possiede la funzione shortForm.

oleg.fresi
Ma non esendoci un assegnamento, una volta chiamata la funzione e restituito il valore, non dovrebbe essere subito eliminato? Che regola c'è dietro questo caso? E' un po come se ci fosse un assegnamento nascosto.

apatriarca
Il valore temporaneo è distrutto dopo essere stato utilizzato dall'espressione che lo contiene. Puoi certamente immaginare che una variabile temporanea è stata creata e che tu le abbia assegnato il valore di ritorno.

oleg.fresi
Perfetto, tutto chiaro, grazie mille!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.