Frage

Gemäß http://www.cplusplus.com/reference/iosstream/ostream/operator%3c%3c/ Die auf EG StreamBuf definierte Operator << Methode ist ein Mitglied von Ostream, aber für char / char * ist es eine globale Funktion. Was ist die Designentscheidung hinter diesem Unterschied?

War es hilfreich?

Lösung

operator<< zum streambuf* (oder int was ein einfacherer Fall klingt) und char Könnte sowohl als Mitgliedbetreiber als auch als Nichtmitglied (freie) Betreiber implementiert worden sein.

Ich vermute, dass es auf Probleme mit Retro-Kompatibilität zurückzuführen ist, während C ++ definiert wurde operator<<(int), und so beschlossen sie, es nicht als freier Bediener zu bewegen.

Die C ++ - Standardbibliothek (und auch STL) hat eine Reihe von Disomogenität wie diese.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top