"->" Was steckt dahinter?
-
Wenn ich programmiere, finde ich haufenweise von "->" in meinem Programm, beispielsweise OpenGL oder DirectX, aber was genau macht das? Oder was ist das? Warscheinlich kommt das jetzt blöß rüber, aber ich weiß wirklich nicht was das ist, obwohl ich diese ständig benutze!
-
Wenn du eine Instanz einer Klasse/Struktur hast, kannst du ja mit "." auf die Member zugreifen ("x.set()"). Wenn du allerdings einen Pointer auf diese Klasse/Struktur hast, musst du "->" zu diesem Zweck benutzen. "x->set()" ist übrigens dasselbe wie "(*x).set()".
-
was bringt mir denn en pointer auf einer klasse oder struktur? (Warscheinlich ist dies sinnvoll, leuchtet mir gerade aber nicht ein)
-
Na du kannst nicht alles auf den Stack legen.
-
memomamu schrieb:
Na du kannst nicht alles auf den Stack legen.
Das wird ihm vielleicht nicht viel sagen.
Beispiel:
CMeineKlasse Klasse; //Instanz einer Klasse erzeugen Klasse.Eigenschaft=1; //einer Eigenschaft einen Wert zuweisen MeineFunktion(&Klasse); //Adresse der Instanz an eine Funktion übergeben cout << Klasse.Eigenschaft; //es wird 2 ausgegeben. void MeineFunktion(CMeineKlasse *c) { //es wird nur ein Pointer auf das Objekt übergeben und keine Kopie auf dem Stack angelegt c->Eigenschaft=2; //die Eigenschaft der oben angelegten Instanz wird direkt geändert, da es ein Pointer ist über den "->"-Operator //(*c).Eigenschaft=2; //wäre dasselbe }Ohne einen Pointer auf die Instanz könntest du sowas nur über den Rückgabewert der Funktion machen. Damit würdest du dich darauf beschränken, nur eine Eigenschaft durch die Funktion ändern zu können. Außerdem könntest du die Funktionsrückgabe nicht mehr für einen Errorcode benutzen.
-
Code-Walker schrieb:
aber ich weiß wirklich nicht was das ist, obwohl ich diese ständig benutze!
Wa gibt da ein altes Konzept: Lernen.
das geht so:
Man kauft sich Bücher zum Thema, oder schaut nach Tutorials im INternet, oder schaut in die Dokumentatoin etc. Es ist sagenhaft was man auf dem Weg alles lernen kann, z.B. sogar die Grundlagen von C und C++.
Du würdest überrascht sein wieviel besser deine Programme werden wenn Du erstmal anfängst zu verstehen was Du da eigendlich machst.
-
loks schrieb:
Code-Walker schrieb:
aber ich weiß wirklich nicht was das ist, obwohl ich diese ständig benutze!
Wa gibt da ein altes Konzept: Lernen.
das geht so:
Man kauft sich Bücher zum Thema, oder schaut nach Tutorials im INternet, oder schaut in die Dokumentatoin etc. Es ist sagenhaft was man auf dem Weg alles lernen kann, z.B. sogar die Grundlagen von C und C++.
Du würdest überrascht sein wieviel besser deine Programme werden wenn Du erstmal anfängst zu verstehen was Du da eigendlich machst.
Mach ihn nicht so fertig. Jeder fängt mal klein an. Allerdings finde ich es schon verwunderlich, dass er sich direkt auf DX/OpenGL stürzt. Klein anfange ist anders...

-
Warum wird eigentlich dem tollen Magazin so wenig Beachtung geschenkt? Pointer in C++.
-
vllt zwecks fehlender werbung dafür ?
-
Badestrand schrieb:
Warum wird eigentlich dem tollen Magazin so wenig Beachtung geschenkt? Pointer in C++.
Jep kann ich nur empfehlen zu lesen, das hilft wirklich sehr sehr sehr sehr weit! http://www.cplusplus.com/doc/tutorial/ Das hilft auch nohc ma ne Ecke weiter
