2013-05-10 42 views
5

Sono una specie di principiante nell'uso di C++. Ho una domanda veloce, probabilmente una domanda stupida.C++ streamsize prec = cout.precision (3) - Come funziona?

streamsize prec = cout.precision(3); 

Come ho capito bene questa dichiarazione funziona così: impostare la precisione cout-3, ma assegnare il valore di precisione precedente prec.

Inoltre, semplicemente, si può assegnare un risultato della funzione (ad esempio una funzione matematica aggiunta) a una variabile:

int z = addition(3,4); 

Nel secondo, si effettua il calcolo e assegna i risultati alla variabile z, non il valore precedente o un valore predefinito. La mia comprensione è corretta? Qual'è la differenza tra loro?

+2

Non una domanda stupida, non essere così timido. – RandyGaul

risposta

3

Il valore restituito da una funzione dipende interamente da quella particolare funzione. Molte funzioni restituiscono semplicemente un risultato della loro operazione.

Le funzioni di impostazione dello stato nei flussi di libreria standard (come precision) sono un po 'insolite nella loro interfaccia di "I set un nuovo valore e restituisce il vecchio", ma è comunque perfettamente valido, purché la funzione sia il comportamento è documentato (che è nel loro caso).

+0

Quindi, dipende dalla funzione e dal suo comportamento particolare nel restituire un valore. cout.precision restituisce solo il valore precedente. quindi per cambiare la precisione e assegnarla a prec, dovrei fare quanto segue. std :: cout.precision (3); streamsize prec = cout.precision(); Molte grazie. – user2371160