ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
298
298
EMPFEHLEN
-
hallo!
in knapp einem monat schreibe ich meine programmier klausur (c++). sie beinhaltet die projektorientierte programmierung. nun hänge ich schon eine zeitlang an den this zeigern.
ich weiß dass der this zeiger auf das "aktuelle" objekt zeigt, aber woher weiß ich welches das aktuelle objekt ist? ist das nicht einfach das objekt mit dem ich gerade abreite? warum brauch ich dann jetzt aufeinmal einen this pointer? oder ist der speziell für klassen?
bitte eine einfach erklärte antwort, dass wäre toll!
schönes we noch!Geändert von leooo (13.08.11 um 19:09 Uhr)
-
Hi
Keine Ahnung, was du mit abreiten meinst...
Und this ist nur für Klassen ja.
Vielleicht wird es mit einem Beispiel verständlicher:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
class klasse { public: void funktion() { //Hier drinnen "this" verwenden } }; int main() { klasse a, b, c; a.funktion(); //In dem Fall ist this ein Pointer auf a b.funktion(); //hier ein Pointer auf b c.funktion(); //und hier auf c }
Gruß
-
Hallo,
Ich nehme an du mein objektorientierte Programmierung?
Der this-Pointer ist wie du schon richtig vermutet hast etwas was nur bei Klassen zum Einsatz kommt. Der this-Pointer ist eine vordefinierte Variable die nur in Funktionen einer Klasse zur Verfügung steht, und immer auf das Objekt zeigt zu dem diese Funktion gehört. Um ganz genau zu sein würde ein Compiler jeden Zugriff auf eine Klassenvariable oder eine Klassenfunktion über den this-Pointer lösen, auch wenn dieser nicht vom Programmierer explizit angegeben wird.
Bsp.:
Code cpp:1 2 3 4 5 6 7
class MyClass { public: void Do(); void Bla(); private: int x; };
Folgende zwei Code-Segmente sind für den Compiler vollkommen gleich, da dieser wie schon oben beschrieben sowieso Zugriffe auf Memberfunktionen und Variablen über den this-Pointer durchführt:
Code cpp:1 2 3 4 5
MyClass::Do() { x = 5; Bla(); }
Code cpp:1 2 3 4 5 6
MyClass::Do() { this->x = 5; this->Bla(); }
Geändert von Steiner_B (13.08.11 um 19:48 Uhr) Grund: Schon wieder zu spät
-
Hallo,
wie hier schon gesagt wurde, bezieht sich "this" auf die Klasse in der man gerade arbeitet. Auf das Schreiben von "this->..." kann man aber verzichten, wenn auf klasseneigene Member oder Methoden zugegriffen wird.
Falls man allerdings die eigene Klasse (bzw. ja eigentlich die Instanz dieser Klasse) einer anderen Klasse oder Funktion bekannt machen muss, geht das nur mit "this", wie im folgenden kleinen Beispiel zu sehen ist:
GrußCode cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
class A { public: void tueDies() { B b; b.tueJenes(this); } }; class B { public: void tueJenes(A* pA) { // ... } };
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
13.08.11 22:04 #5
Ich will ja jetzt nicht komisch rüberkommen aber dieses Thema war schon sehr ausfürlich hier beschrieben worden.
SuFu wäre ganz ok
und in google findet man auch sehr viel
MFGFehlermeldung bitte!
Google - Dein Freund und Helfer
Ähnliche Themen
-
Zeiger
Von Kalito im Forum Javascript & AjaxAntworten: 10Letzter Beitrag: 01.06.11, 14:36 -
Zeiger auf Zeiger Problem
Von callis2 im Forum C/C++Antworten: 2Letzter Beitrag: 31.01.09, 22:45 -
Zeiger auf Zeiger - char Zeichenanzahl ausgeben - strlen?
Von SebastianHL im Forum C/C++Antworten: 0Letzter Beitrag: 27.12.07, 16:08 -
Zeiger auf Zeiger nicht verstanden
Von Razorhawk im Forum C/C++Antworten: 6Letzter Beitrag: 17.10.05, 12:24 -
Zeiger auf Zeiger vs. Zeiger auf Pointerarray
Von andand im Forum C/C++Antworten: 4Letzter Beitrag: 08.09.04, 05:28





Zitieren


Login






