[C++] externen Operator in Klasse als friend deklarieren
Verfasst: 13.06.2012, 14:19
Moin Leute,
ich habe mich zu früh gefreut. Ich hänge hier an einer Stelle, bei der ich den Compiler nicht überredet bekomme, eine extern definierte Funktion als Freund zu akzeptieren. Folgender verkürzter Code:
Ich bin eigentlich der Meinung, dass das so funktionieren sollte. Trotzdem schimpft VS10 auf mich, dass ich in den Operatoren keinen Zugriff auf private Elemente von Blubb hätte. Was mache ich falsch? Es ist wahrscheinlich irgendwas mit dem Namespace...
ich habe mich zu früh gefreut. Ich hänge hier an einer Stelle, bei der ich den Compiler nicht überredet bekomme, eine extern definierte Funktion als Freund zu akzeptieren. Folgender verkürzter Code:
Code: Alles auswählen
namespace Bla {
class Blubb {
friend StreamReader& operator >> (StreamReader&, Blubb&);
friend StreamWriter& operator << (StreamWriter&, const Blubb&);
...
};
// Prototypen
StreamReader& operator >> (StreamReader& reader, Blubb& bl);
StreamWriter& operator << (StreamWriter& writer, const Blubb& bl);
}
// Implementierung in CPP-Datei
StreamReader& operator >> (StreamReader& reader, Blubb& bl) { ... }