Folgendes Problem:
Ich hab eine Basisklasse "Figur" und eine abgeleitete Klassen "Rechteck". In "Figur" gibts zwei virtuelle Funktionen Umfang() und Flaeche() die in "Rechteck" implementiert sind und auch funktioniern. Jetzt brauch ich einen "<<" - Operator mit dem ich dann folgendes beispielsweise machen kann:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
Rechteck r1(10,5); //ein Rechteck mit den Maßen 10x5
Figur *f = &r1;
cout << f->Umfang() << endl; // Ausgabe des Umfanges auf der Konsole
// und Umfang wird in der Rechteck - Klasse gespeichert!
cout << f << endl; // Hier ist das eigentliche Problem/Frage des Betrages
|
Die letzte Zeile sollte jetzt genau das selbe ausgeben, wie die vorherige.
Kann man einen virtuellen Operator "<<" in die "Figur" - Klasse einbauen, so dass in der letzten Zeile der "<<" - Operator der Rechteck - Klasse aufgerufen wird?
Ich hab schon mal für eine Stringklasse einen "<<" - Operator Überladen, allerdings war dieser eine friend - Funktion, und es gibt leider keine virtuellen friend Funktionen.
Bin mittlerweile ziemlich ratlos.
Zusatzinformation: Das ist eine Übungsaufgabe zu Klasse/Vererbung