2009-10-15 15 views

risposta

12

In quel caso si restituisce un riferimento a un oggetto ostream. Rigorosamente pensando alla e commerciale come "indirizzo di" non funzionerà sempre per te. Here 's alcune informazioni da C++ FAQ Lite su riferimenti.

Per quanto riguarda la costante, la correttezza delle cost è molto importante nella sicurezza del tipo C++ e qualcosa che vorrete fare il più possibile. Un altro page dalle FAQ aiuta a tale riguardo. const ti aiuta a modificare i tuoi effetti collaterali mettendo a rischio i tuoi dati in situazioni in cui potresti non aspettarti.

3

Significa che la variabile è un riferimento. È un po 'come un puntatore, ma non proprio.

Vedi: Reference (C++)

3

In dichiarazioni di tipo C++, la commerciale significa "riferimento". In questo caso, operator << restituisce un riferimento a un oggetto ostream.

Dal momento che in realtà ritorna *this in realtà è lo stesso ostream oggetto, e significa che è possibile chiamate a catena a operator <<, simile a questo:

os << "Hello" << " " << "World" << endl; 
+1

L'operatore << << la maggior parte dei programmatori incontrano l'implementazione di funzioni libere, non funzioni membro, quindi non è necessario coinvolgere. – sbi

6

A seconda del contesto della e commerciale può significare 2 cose diverse. La risposta alla tua domanda specifica è che si tratta di un riferimento, non "l'indirizzo di". Sono cose molto diverse. È molto importante capire la differenza.

C++ Reference

Il motivo per rendere parametri const è garantire che essi non vengono modificati dalla funzione. Ciò garantisce al chiamante della funzione che i parametri che passano non saranno modificati.

+0

Quando si usa una e commerciale su una variabile 'normale', si sta prendendo l'indirizzo della variabile in memoria - questo è ciò che intendeva Omar. Con riferimenti, il & ha un significato diverso però. – Jesper

+0

Jesper, hai ragione. Ho aggiornato la mia risposta per fare la distinzione. – nathan