Initialisieren, Kopieren und Zuweisen
Beispiel:
- Implementation der Methoden der Klasse Name
// File: Name.cc
#include <Name.h>
Name::Name(const char* _Vorname, const char* _Familienname)
: Vorname(_Vorname), Familienname(_Familienname)
{}
ostream& Name::printOn(ostream& ros) const
{
return (ros << Vorname << " " << Familienname);
}
ostream& operator<<(ostream& ros, const Name& rName)
{
return (rName.printOn(ros));
}
Zur Beachtung:
- Methode printOn ist virtuell
- Klasse Name hat keinen
explizit definierten Kopier-Konstruktor
- shallow copy in diesem Fall kein Problem: String-Klasse hat
Kopier-Konstruktor
- zur Ausgabe von Objekten der Klasse Name: Ausgabeoperator nutzt
printOn-Methode
- operator<< muß nicht friend der Klasse Name sein