C ++ Was ist falsch an der Verwendung einer toString () -Methode?

Ich bin gerade auf @ gestoßdiese Frag Hier geht es darum, wie man ein Objekt über @ drucken ka

std::cout << x << std::endl;

Wie ich verstanden habe, besteht die Standardmethode darin, den ostreams << -Operator zu überladen. Dies fügt jedoch eher dem ostream als meiner Klasse eine Funktion hinzu.

Die Alternative (auch als Antwort auf die oben genannte Frage angegeben) besteht darin, den String-Konvertierungsoperator zu überschreiben. Dies ist jedoch mit der Warnung verbunden, dass es zu "unbeabsichtigten Konvertierungen und schwer zu verfolgenden Fehlern" kommen kann.

Now Ich frage mich, ob es irgendwelche Nachteile gibt, eine toString () -Methode zu schreiben und sie dann über @ zu verwend

std::cout << x.toString() << std::endl;

Antworten auf die Frage(10)

Ihre Antwort auf die Frage