Default-Konstruktor



  • Hallo
    ich habe in Stroustrup folgendes gelesen:

    Tabelle& Tabelle::operator = (const Tabelle& t) //zuweisungsoperator
    {
    if ( this != &t) { //vorsicht selbstzuweisung
     delete[] p;
     p = new Name[gr=t.gr];
     for (int i=0; i<gr; i++) p[i] 0 t.p[i];
    }
    
    return *this;
    }
    

    Nun meine Fragen:
    + worauf bezíeht sich und was bedeutet "operator" ?
    + worauf zeigt this in der 2. Zeile?
    + was will er mit delete überhaupt löschen?
    Danke!



  • Wenn du 2 Tabellen hast: die Eine leer, da mit Standard-Konstrruktor erzeugt; die Andere voll und jetzt die Volle der Leeren zuweisen willst (also praktisch kopieren), dann egschieht das durch den Zuweisungsoperator "="
    Und weil es mMist ist, sowas wie: Tabelle1 = Tabelle1 zu machen, wird geprüft, dass man nicht versucht, dass man die Tabelle sihc selbst zuweist.
    Der this-Zeiger bezieht sich folglich auf die Tabelle, die den Operator "=" verwendet.
    Bei einer Zuweisung muss man den Speicher, den das Element, dem man was zuweisen will ( Tabelle1) auch freigben, deswegen das delete[] p, weilman ja nicht davon ausgehen kann, das die erste Tabelle bereits leer ist


Anmelden zum Antworten