Wann benutzt man einen Punkt oder einen Pfeil in C++?
-
Hallo!
Wann benutzt man eigentlich einen Punkt oder einen Pfeil zur objektorientierten Programmierung in C++? Ich habe leider nirgendswo eine Erklärung gefunden.
Viele Grüße
pmw
-
Pfeil wenn du einen Pointer(Zeiger) auf das Objekt hast, und Punkt sonst. :xmas1:
mfg JJ
-
wenn du ne klasse hast und dann was ändern möchtest
Bsp.:
class point { private: int x,y; } point Punkt; Punkt.x = 10;
und den Pfeil -> benutzt du dann...
point* Punkt; Punkt->x = 10;
also:
Punkt->x == (*Punkt).x
-
Punkte benutzt man auch bei Structs. Und doppelte Doppelpunkte sind hier gut erklärt:
BOOL CControlsDlg::OnInitDialog()
Die beiden Doppelpunkte ohne Zwischenraum werden als Scope-Resolution-Operator bezeichnet und verwendet, um den Geltungsbereich (Scope) der Funktion anzugeben. In der obigen Situation gibt er an, dass die aufzurufende Funktion ein Mitglied der Klasse vor den beiden Doppelpunkten ist. Wenn Sie eine Funktion mit zwei Doppelpunkten vor dem Funktionsaufruf und ohne Klassennamen davor haben, gibt der Scope-Resolution-Operator an, dass es sich um eine globale Funktion handelt und nicht um ein Mitglied einer Klasse.
-
Unter C+ ist doch struct sowieso nur ne spezielle Ausprägung einer class. :xmas1:
mfg JJ
-
pmw schrieb:
Wann benutzt man eigentlich einen Punkt oder einen Pfeil zur objektorientierten Programmierung in C++? Ich habe leider nirgendswo eine Erklärung gefunden.
...kann ich mir aber kaum vorstellen...
...steht eigentlich in jedem C++-Buch/Tutorial!
hier, schau mal:class C { int member; static int member2; void method(); // heißt in Wirklichkeit C::method }; ... C v; C *p; v.member = ...; p->member = ...; // ist das gleiche wie "(*p).member = ...;" C::member2 = ...; ... void C::method() { ... }
Okay?
-
Also, ein Pfeil wird bei Pointern und Objekten auf dem Heap (welche widerrum durch einen Pointer referenziert werden) benutzt. Und ein Punkt bei Referenzen auf dem Stack.
Heap:
Haus *haus = new Haus(); haus->reinGehen();
Stack:
Haus haus; haus.reinGehen();
-
Artchi schrieb:
Also, ein Pfeil wird bei Pointern und Objekten auf dem Heap (welche widerrum durch einen Pointer referenziert werden) benutzt. Und ein Punkt bei Referenzen auf dem Stack.
Der pointer kann auch auf ein Objekt auf dem Stack zeigen, er ersetzt im Prinzip die zus. Derefernzierung. (
haus* einhaus=einandereshaus; //evtl. auf dem Stack (*einhaus).reinGehen(); //bedeutet das selbe wie einhaus->reinGehen(); //das
)
-
Ist es eigentlich notwendig, dass zu so einer simplen Frage so ein Thread entsteht? Eine Antwort sollte eigentlich reichen
-
Hallo!
Vielen Dank für die vielen guten und schnellen Antworten
Thx,
pmw
-
leech schrieb:
class point { private: int x,y; } point Punkt; Punkt.x = 10;
soviel zum Thema Datenkapselung
-
ja hatte mich vertan... das "private" muss natürlich "public" heißen.... war zudem zeitpunkt noch nicht so fit...