Ich möchte eine Funktion aufrufen, wenn m_logger<<"hello"<<"world"
aufgerufen wird. m_logger ist vom Typ ofstream.Wie überlade ich den Operator <<?
Also entscheide ich < zu überlasten < mit Unterschrift folgenden
friend ofstream& operator<<(ofstream &stream,char *str);
jedoch der vc Compiler folgenden Fehler gibt:
error C2666: 'operator <<' : 6 overloads have similar conversions
Gibt es anyother Weg, dies zu erreichen, mein Ziel ist, alle abzulenken die Schreiboperation von ofstream Objekt zu anderer Funktion?
Erstellen eines Objekts meiner eigenen Calss funktioniert für mich, aber wie kann ich es wie normale ofstream-Objekt arbeiten, die alle systemdefinierten Typen in Strings oder char * typisiert. Ich weiß, ein Ansatz wäre, den Operator für jeden einzelnen Typ zu überlasten, aber gibt es einen saubereren Ansatz
@Kazoom: Ich habe meine Antwort bearbeitet, um den generischen Weg zu zeigen, alles an das interne 'ofstream' zu übergeben (es benutzt Funktionsvorlagen). – Zifre