Der Verweis auf das Objekt, dass die Funktion aufgerufen hat ist mit dabei.
Nein. Lest doch bitte, was da steht. Da steht "Zeiger auf das Objekt übergeben,
dass die Methode aufgerufen hat" und nicht "Zeiger auf das Objekt, dessen Methode aufgerufen wird". Der Aufrufer wird NICHT übergeben (auch nicht im Stack per call, sondern das ist nur eine Rücksprungadresse), sondern der Auf
gerufene:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
class Foo;
class Bar
{
void Methode()
{
Foo x;
x.foobar(); // hier wird NICHT Bar übergeben, sondern x. Der Aufgerufende, nicht der Aufrufer!
}
}
|
Vielleicht ist das ja jetzt deutlich genug. Und selbst wenn es richtig da gestanden hätte, dann wäre das noch immer kein Grund, warum eine const-Methode keine Attribute des Objekts verändern kann. Der Grund ist der Zusatz "const" und nicht die Übergabe der Objekt-Referenz "this". Und schon gar nicht die Art und Weise als "versteckter Parameter". Das ist absolut unerheblich.