Aus vorangegangenen Kapiteln liegen Definitionen für die Klassen Name und NamemitTitel vor. In diesen Klassen ist eine virtuelle Methode printOn definiert. Definieren Sie nun bitte auf der Basis dieser Methode eine Manipulatorfunktion PrintName zur Ausgabe von Name-Objekte auf Manipulatorart!
Überlegung:
Muß die Technik des Manipulators ohne Argument oder die des Manipulators
mit Argument angewendet werden?
Hinweis:
Zur konkreten Ausgabe eines Name-Objektes soll durch die Manipulatorsyntax
der indirekte Aufruf der printOn-Methode realisiert werden.
Folgende Verwendung:
// File: mManName.cc #include <NamTitel.h> #include <PROTECT/ManName.h> int main() { Name *pDerStinomann = new Name("Otto", "Normal"); Name *pDerStinoHerr = new NamemitTitel("Herr", *pDerStinomann); NamemitTitel *pDieStinoFrau = new NamemitTitel("Frau", "Lotte", "Normal"); cout << PrintName(*pDerStinomann) << endl << PrintName(*pDerStinoHerr) << endl << PrintName(*pDieStinoFrau) << endl; Name *pAnOtherStino = new NamemitTitel(*pDieStinoFrau); delete pDerStinoHerr; cout << PrintName(*pAnOtherStino) << endl; return 0; }