Zeiger !?
-
Hi Leute!
Ich habe jetzt schon den ganzen tag bei google nach C++ tutorials gesucht, die mir erklären sollten was Zeiger sind und wozu man sie verwendet. Was ich weiß ist folgendes:In einem Zeiger kann man die adresse einer Variable ablegen. Ein Zeiger zeigt auf einen Datentyp. Warum? Kein Plan.
Ich lese in vielen tutorials das ich irgendwo zeiger drauf legen soll und dann irgendwas anderes machen soll. Ich verstehe dann aber nie was das bewirkt. Beispiel:
void CCustomSocket::SetParent(CDialog *pWnd) { // Elementzeiger setzen m_pWnd = pWnd; } void CCustomSocket::OnAccept(int nErrorCode) { // Sind Fehler aufgetreten? if (nErrorCode == 0) // Nein, OnAccept-Funktion des Dialogfelds aufrufen ((CSocketDlg*)m_pWnd)->OnAccept(); <---- HIER!!! }
Was das bedeutet versteh ich z.B überhaupt nicht. Und erst recht nicht diesen komischen -> pfeil...
Ich glaube ich gehe euch mit der Frage voll aufn sack, aber wäre nett wenn mir das jemand mit den Zeigern erklären könnte, bzw ne URL hat, wo das verständlich beschrieben ist, am besten noch mit beispielen.
Danke im Voraus
-
Nö, der Zeiger zeigt nicht auf einem Datentyp, sondern auf eine Adresse, wo sich Daten des angegebenen Typs befinden. Theoretisch gibt es den Typ des Zeigers gar nicht, das ist nur eine Nettigkeit vom Compiler, dass er dir auf die Finger hauen kann.
Der Pfeil bedeutet das selbe wie*(zeiger).
In diesem Beispiel also:
(*m_pWnd).OnAccept();
-
Mag sein, aber leider hab ich immernoch nicht die leisteste ahnung was ein Zeiger ist. Habs schon öfter versucht zu verstehen. Scheint ja was richtig ultra kompliziertes zu sein, was nur leute mit einem IQ von 300 verstehen... hmmmm
-
Ungelesen verweise ich dich jetzt einfach mal auf die Seite von Shade of Mine´s Tutorial, wo er über Zeiger schreibt.
http://tutorial.schornboeck.net/zeiger.htmGruß
Entyl Sa
-
und hier findest du auch nen haufen, welches tutu du liesst ist dir überlassen
http://www.c-plusplus.net/tutorials.htm
-
Oder vieleicht in der FAQ.