robbi die Daten von arni zuzuweisen,
d.h.,
robbi = arni; ,
muß noch ein Zuweisungsoperator definiert werden, welcher sich im
wesentlichen aus den Funktionskörpern von Destruktor und
Copykonstruktor zusammensetzt.
Jedoch ist hier vorher zu überpüfen, ob die
rechte Seite der Zuweisung (übergebene Variable)
nicht identisch zur linken Seite der Zuweisung (this) ist.
// Zuweisungsoperator
Studenten& Studenten :: operator=(const Studenten & orig)
{
if ( &orig != this ) // test
{
if (pvorname != 0) delete [] pvorname;
if (pname != 0) delete [] pname;
matrikel = orig.matrikel;
skz = orig.skz;
if (orig.pname !=0 )
{
pname = new char[strlen(orig.pname)+1];
strcpy(pname,orig.pname);
}
else
{
pname = 0;
}
if (orig.pvorname != 0)
{
pvorname = new char[strlen(orig.pvorname)+1];
strcpy(pvorname,orig.pvorname);
}
else
{
pvorname = 0;
}
}
return *this;
}
|
Weiterführend sei hier auf den Stichpunkt
Überladen von Operatoren in der Literatur
[SK98, §16],
[Str00, $ 11]
verwiesen.