Überladen des Zuweisungsoperators = (C++)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Überladen von Operatorfunktionen (Übersicht) - Index


Der Zuweisungsoperator = kann überladen werden, indem man eine nichtstatische Elementfunktion deklariert. Zum Beispiel:

class String {
     .
     .
     .
   String& operator = (String& str);
     .
     .
     .
   String (String&);
   ~String();
}

Das obige Programmstück ermöglicht es (zusammen mit passenden Definitionen von String::operator =(), Stringzuweisungen wie in anderen Sprachen in der Form str1 = str2 zu schreiben. Im Gegensatz zu anderen Operatorfunktionen kann die Zuweisungsoperatorfunktion von abgeleiteten Klassen nicht geerbt werden. Wenn es für eine Klasse X keinen benutzerdefinierten Operator = gibt, wird der Operator = standardmäßig als elementweise Zuweisung der Elemente von Klasse X definiert:

X& X::operator = (const X& source)
{
   // elementweise Zuweisung
}

Siehe auch