Cplusplus sagen "Das Ostream-Objekt (* dies)", aber ich verstehe nicht. Gibt den Zeiger des Ostream-Objekts zurück? Ich habe versucht, diesen Wert mit Cout-Funktion zu drucken, aber ich drucke immer 0. Und wie kann dieser Wert nützlich sein?Was zurück ostream :: schreiben?
Antwort
Im Allgemeinen in C++, Methoden Klassen, die nicht einen bestimmten Wert zurückgeben müssen, wie in diesem Fall (oder mit string
zum Beispiel), geben *this
zurück.
Jedes Objekt in C++ hat Zugriff auf seine eigene Adresse über einen wichtigen Zeiger namens Zeiger. Der This-Zeiger ist ein impliziter Parameter für alle Elementfunktionen. Daher kann dies innerhalb einer Elementfunktion dazu verwendet werden, sich auf das aufrufende Objekt zu beziehen.
Dank this
, können Sie die Methode Verkettung verwenden können, ist dies ein Beispiel:
char c[]="This this this";
std::cout << (std::cout.write(c,4) << " hello ") << std::endl;
Ausgang: This hello 0x600e08
In diesem Beispiel habe ich Bediener absichtlich verwendet Chaining, aber es ist die Gleiches mit Methoden.
0x600e08
ist die Adresse Ihres Objekts basic_ostream
.
this
ist ein Zeiger auf das aktuelle aufgerufene Objekt.
*this
dereferenziert den Zeiger.
Dies wird oft für "Verkettung" verwendet. Zum Beispiel:
cout<<1<<2<<3<<4<<5;
Betreiber < < in cout aufgerufen wird: cout < wird cout 1 und zurück drucken, haben wir dann:
cout<<2<<3<<4<<5;
und so weiter.
- 1. ostream :: write nicht schreiben gesamte struct?
- 2. Schreiben von Unicode-Zeichen in einen OStream
- 3. Was bedeutet -> Std :: Ostream & Mean?
- 4. ostream Probleme
- 5. Überladen Ostream-Operator zum Schreiben der Matrix in Datei
- 6. Was bedeutet "friend std :: ostream & operator << (std :: ostream & out, LinkedList & list)"?
- 7. Wie man 'virtuellen ostream & print (ostream & out) const;'
- 8. std :: ostream als optionaler (!) Funktionsparameter
- 9. Vorlage Überlastung Ostream-Operator
- 10. Was muss ich in meine Header-Datei für Ostream
- 11. Über std :: ostream Konstruktor
- 12. inherit std :: ostream
- 13. ostream double precision
- 14. Anzeige Eingänge zu Std :: ostream
- 15. Wie erstelle ich mein eigenes Ostream/Streambuf?
- 16. So löschen Sie std :: ostream
- 17. operator << overloading ostream
- 18. Bezeichner "ostream" ist undefinierter Fehler
- 19. Anpassen streambuffer für C++ ostream
- 20. ABC Virtuelle oStream Insertion Operator
- 21. Fehler: "Ostream" nennt keinen Typ
- 22. Filestream ausgegeben wird in Ostream C++
- 23. Wie Funktion ostream & operator << (ostream & os, const unsigned char * s)
- 24. Mit Ostream So auf Zeiger auf Objekte
- 25. Schreiben bestimmter Wert zurück zu .csv, Python
- 26. Was geben Arrayinitialisierer zurück?
- 27. Was gibt `layer.get_weights()` zurück?
- 28. Was gibt CGColorGetComponents() zurück?
- 29. Was gibt & ** genau zurück?
- 30. Was gibt int.class zurück
Es bedeutet eine Referenz auf den Stream, an den Sie schreiben. –
Und bitte verwenden Sie nicht cplusplus als Referenz oder für etwas anderes. –
Geben Sie [diese Referenz einen Versuch] (http://en.cppreference.com/w/cpp/io/basic_ostream/write). Wissen Sie auch, was Sie bekommen, dann tun Sie '* this'? – NathanOliver