pure virtual operatoren?
-
Hi Leuts,
ist es möglich pure virtual operatoren zu definieren? Ich will praktisch eine Interface machen und dann alle abgeleiteten Klassen zwingen, den Operator << zu implementierenthx
-
Klar geht das was soll dich denn daran hindern?

Gruß
-
Bei operator<< mußt du dazu allerdings einen Umweg nehmen, da du den nicht in deine Klasse einbauen kannst:
class base { public: virtual void print(ostream& sout) const =0; } ostream& operator<<(ostream& sout,const base& val) { val.print(sout); return sout; } class derived : public base { public: virtual void print(ostream& sout) {...} }
-
CStoll schrieb:
Bei operator<< mußt du dazu allerdings einen Umweg nehmen, da du den nicht in deine Klasse einbauen kannst:
Wer sagt denn, dass Overloader op<< als ostream-op verwenden will :p ;).
Gruß Caipi
-
CStoll schrieb:
Bei operator<< mußt du dazu allerdings einen Umweg nehmen, da du den nicht in deine Klasse einbauen kannst:
das hat allerdings nichts mit dem operator selbst zu tun, sondern nur damit, dass er gewöhnlich ostream als linken operand hat. folglich müsste dieser operator ein member von ostream sein - und da wir ostream nicht verändern können, bleibt nur die implementation als freie funktion.