Verständnisproblem Operatoren überladen
-
class Stack { . . . // Operatoren überladen: // 1. Zuweisung = Stack& operator=( const Stack& op ) { // Zuweisung identischer Objekte verhindern: if ( this != &op ) { // a) neuen Platz beschaffen f. int-Array int *temp = new int[op.nSize]; // b) Daten/Werte übernehmen: for ( int i = 0; i < op.nSize; i++ ) temp[i] = op.pa[i]; // c) Aufräumarbeiten: delete[] pa; // d) Verwaltungsinformation aktualisieren: nSize = op.nSize; nTop = op.nTop; pa = temp; } return *this;.
.
.
}op ist ein Objekt vom Typ Stack das als Parameter referenziert wird.
nSize ist ein Attribut von der Klasse Stack.
op.nSize Wieso kann man so direkt auf das Attribut zugreifen ich dachte, dass geht nur durch Methoden die es einem Erlauben auf das Attribut zuzugreifen.
Bsp. op.setnSize()
-
der schutz ist nur gegen andere arten. alle der eigenen art dürfen. das ist auch gut so.