Zeiger auf EIgenschaften eineer Klasse
-
Hallo,
wo ist der Unterschied zwischen den Beiden Zugriffen:Objekt.*ElementPtrObjektPtr->*ElementPtrDoch eigentlich, dass beim Ersten <ich das Objekt direkt angebe, und darüber auf ein Element dieses Objekts, welches durch den Zeiger bestimmt wird zugreife.
Beim 2. <<<ist beides ein Zeiger. Doch nun steht in meinem Buch folgendes:
int durchschnit(Mensch* MenschPtr...) { ... unsigned int Mensch:alterPtr alter Ptr=&Mensch:alter; gesamt+=MenschPtr[i].*alterPtr; }Ein die Methode wird ein Array aus Objekten übergeben.
Aber beigesamt+=MenschPtr[i].*alterPtr;ist doch auch beides ein Zeiger, oder? Wieso wird dann nicht die 2. Variante genommen. Und könnte ich nicht stattdessen auch:
gesamt+=MenschPtr[i].alter;schreiben, da ja der alerPtr eh immer auf die gleiche Eigenschaft zeigt.
-
Pointer->Methode();ist eine Abkürzung für
(*Pointer).Methode();Pointer[i].Methode();ist eine Abkürzung für
(*(Pointer + i)).Methode();Nun klar?
-
Das erste ja, das 2. noch nicht ganz. Im Buch steht ja, dass in diesem Fall der Zugriff über ein Objekt erfolgt. Er efolgt ja aber auch über einen Pointer.
-
Das erste ja, das 2. noch nicht ganz. Im Buch steht ja, dass in diesem Fall der Zugriff über ein Objekt erfolgt. Er efolgt ja aber auch über einen Pointer.
Ja, denn der Pointer zeigt auf das Objekt (im Speicher) welches über diesen angesprochen wird und somit stimmt das auch wieder.
Mfg Wikinger75!
-
aber hier:
ObjektPtr->*ElementPtrzeigt doch der ObjektPtr auch auf ein Objekt und mam muss den Pfeiloperator verwenden.