Worin liegt bei diesen code schnipseln der Unterschied ?
Code: Alles auswählen
int node::getData(void)
{
return this->data;
}
Code: Alles auswählen
int node::getData(void)
{
return node.data;
}
über den . Was ist professioneller
Code: Alles auswählen
int node::getData(void)
{
return this->data;
}
Code: Alles auswählen
int node::getData(void)
{
return node.data;
}
Code: Alles auswählen
int node::getData(void)
{
return this->data;
}
Code: Alles auswählen
int node::getData(void)
{
return data;
}
Code: Alles auswählen
int node::getData(void)
{
return node.data;
}
Code: Alles auswählen
int node::getData(void)
{
return node::data;
}
Das ist vermutlich Geschmackssache, aber ich verwende es möglichst gar nicht und habe es auch nur sehr selten gesehen. Es bringt eigentlich keinen Mehrwert und ist nur mehr zu Tippen. Der einzige Vorteil wenn man es konsequent durchzieht ist Member auf den ersten Blick identifizieren zu können. Dazu verwende ich aber ein _ als erstes Zeichen des Namens und nicht den Zugriff über this->.gizno82 hat geschrieben:Also wenn man in einer Methode auf ein Klassenelement zugreifen möchte, immer schön den this-> Zeiger benutzen.
Der einzige andere Grund wäre auf einen verdeckten Namen zuzugreifen, also zb:gizno82 hat geschrieben:Benutzt man den this-> Zeiger nur aus Gründen der Übersichtlichkeit oder gibt es noch andere Gründe ?
Code: Alles auswählen
void node::setData(int data)
{
this->data = data; // data ohne this-> meint den Parameter data, der die Membervariable überdeckt (shadowed) und deshalb über this->data zugegriffen werden muss.
}
this ist ein Zeiger auf die aktuelle Instanz. In einer Methode, befindet man sich grundsätzlich in einer "dieser" Instanz. Damit ist "member" der Name eines Members "dieser" Instanz und "this->member" dasselbe mit mehr Prosa. Ich benutze this eigentlich nur, wenn ich zum Beispiel an einen Operator heranmöchte:gizno82 hat geschrieben:Also wenn man in einer Methode auf ein Klassenelement zugreifen möchte, immer schön den this-> Zeiger benutzen.
Code: Alles auswählen
return (*this)[ index ];
Code: Alles auswählen
return operator[]( index );
Ich kenne niemanden, der es benutzt.gizno82 hat geschrieben:Um deutlich zu machen, das man auf ein Element genau dieser Klasse zugreifen möchte.
Benutzt man den this-> Zeiger nur aus Gründen der Übersichtlichkeit oder gibt es noch andere Gründe ?