2009-10-15 12 views

Antwort

12

In diesem Fall können Sie einen Verweis auf ein ostream Objekt zurückkehren. Strictly denken an Ampersand als "Adresse von" wird nicht immer für Sie arbeiten. Here 's einige Informationen aus C++ FAQ Lite auf Referenzen.

Soweit const geht, ist const Korrektheit sehr wichtig in C++ Typ Sicherheit und etwas, was Sie tun wollen, so viel wie Sie können. Ein weiterer page aus den FAQ hilft diesbezüglich. const hilft Ihnen von Nebenwirkungen, die Ihre Daten in Situationen mucken, in denen Sie es nicht erwarten.

3

Dies bedeutet, dass die Variable eine Referenz ist. Es ist wie ein Zeiger, aber nicht wirklich.

See: Reference (C++)

3

In C++ Typdeklarationen, bedeutet das Und-Zeichen "Referenz". In diesem Fall gibt operator << einen Verweis auf ein Objekt ostream zurück.

Da es *this tatsächlich gibt es eigentlich das gleiche ostream Objekt, und bedeutet, dass Sie können Kette Anrufe operator <<, ähnlich wie diese:

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

Der 'Operator <<' die meisten Programmierer stoßen auf die Implementierung von sind freie Funktionen, nicht Mitglied Funktionen, so dass es keine 'this' beteiligt. – sbi

6

Je nach Kontext des kaufmännischen Und kann es zwei verschiedene Dinge bedeuten. Die Antwort auf Ihre spezifische Frage ist, dass es eine Referenz ist, nicht "die Adresse von". Sie sind sehr unterschiedliche Dinge. Es ist sehr wichtig, den Unterschied zu verstehen.

C++ Reference

Der Grund Parameter const zu machen ist, um sicherzustellen, dass sie nicht durch die Funktion geändert werden. Dies garantiert dem Aufrufer der Funktion, dass die übergebenen Parameter nicht geändert werden.

+0

Wenn Sie ein kaufmännisches Und-Zeichen für eine 'normale' Variable verwenden, nehmen Sie die Adresse der Variablen im Speicher an - genau das meinte Omar. Bei Verweisen hat das & eine andere Bedeutung. – Jesper

+0

Jesper, du hast Recht. Ich habe meine Antwort aktualisiert, um den Unterschied zu machen. – nathan

Verwandte Themen