Bedeutung von "->"
-
Hallo...ich habe ein Beispielprogramm wo in Listen sachen umgeordnet werden.
Versuche mir gerade Verständis zum Programm zu verschaffen....allderings weiß ich nicht richtig was: -> bedeutet...Hier ein Bsp:// Neues Element in die Liste aufnehmen
//-------------------------------------
NewElement->Next = First;
First = NewElement;
// 1. Element aus der Liste entfernen
//-------------------------------------
Element = First;
First = Element->Next;
Element->Next = NULL;(-> hat irgendwas mit Zeigern zu tun ...aber das wars dann auch....kann mir jemand erklären wie -> funktioniert und was es machen?!...hab schon gegoogelt....aber der ignoriert "->" immer
-
-> ist das gleiche wie (*zeiger).foo also . für Zeiger
Bei NewElement->Next ist NewElement ein Zeiger. Wäre es keiner würdest du NewElement.Next schreiben.
-
Also wenn NewElement der Zeiger ist,
wie müsste das dann aussehen
dann ist der inhalt von First eine Adressewie schreib ich das mit * und & statt mit ->???
-
Mit welchem Buch lernst du? Sowas sollte in den ersten Kapiteln erklärt werden.
-
#include <iostream> class AA { private: int b; public: AA(const int v = 123456) : b(v) {} // default constructor inline int get() const { return b;} inline void set(const int v) { b = v;} }; int main(int argc, char *argv[]) { AA keinZeiger (654321); AA * zeiger = new AA; // keintZeiger als nicht zeiger std::cout << keinZeiger.get() << std::endl; // nimm die Referenz auf keinZeiger und dereferenziere den Methodenaufruf std::cout << (&keinZeiger)->get() << std::endl; // nimm den Zeiger und dereferenziere std::cout << zeiger->get() << std::endl; // nimm das Object auf das der Zeiger zeigt und ruf dessen Methode auf std::cout << (*zeiger).get() << std::endl; // confuse all std::cout << (*(&keinZeiger)).get() << std::endl; return 0; }
Fragen ist immer gut, im Zweifel bau dir einfach ne Testklasse und spiel rum ...
-
toblerone schrieb:
Also wenn NewElement der Zeiger ist,
wie müsste das dann aussehen
dann ist der inhalt von First eine Adressewie schreib ich das mit * und & statt mit ->???
Ich verstehe Dich nicht. Kannst Du nochmal anders fragen?
Wie müsste was aussehen?
-
Ahh...ok....ich hab mit der gebastelten Klasse rumgespielt....und das ganze jetzt verstanden....man man man....
Alle unklarheiten beseitigt...danke nochmal für die schnelle hilfe