this was ist das???
-
Hi,
was ist eigentlich ein this Zeiger??
-
ein ganz normaler http://www.c-plusplus.net/ubb/ubb/biggrin.gif http://www.c-plusplus.net/ubb/ubb/biggrin.gif
scherz!this zeigt immer auf die eigene klasse, das heisst eigentlich auf die aktuelle instanz!
wenn du zB den operator= ueberladest, dann wirst du vermutlich eine instanz der klasse zurueck geben wollen, das laeuft eben ueber this... oder wenn du vergleichen willst ob zwei instanzen gleich sind dann uebergibts du der vergleichsfunktion eine instanz der klasse und pruefst mit this
also ist this quasi die instanz deiner klasse die die methode aufgerufen hat...
-
Den this - zeiger gibt es übrigens immer nur innerhalb von nicht statischen memberfunktionen einer klasse (also den normalen methoden). Jede memberfunktion (nicht statisch) hat einen unsichtbaren parameter, nämlich einen zeiger auf die aufrufene klasse selber. Dar ist quasi der zeiger auf die variable die links vom punkt steht:
test.funktion()
immerhalb von funktion() zeigt this in diesem beispiel auf die variable test. Auch wenn es nicht so aussieht, die obrige funktion hat tatsächlich einen parameter der auch programmtechnisch übergeben wird! Es ist natürlich dieser this-zeiger.