"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Was macht das '->' Symbol?

HeuJi 11.05.2003 - 01:49 700 4
Posts

HeuJi

OC Addicted
Avatar
Registered: Jul 2001
Location: Vienna
Posts: 7379
Sorry, ich bin noch absoluter noob im Programmieren und hab keine Ahnung wozu das '->' steht...
Bedeutet das Symbol zeigt, impliziert, folgt oder abgeleitet? :confused:
In Tutorials hab ich auch nix gescheites gefunden...

z.B. Hier kommt das überall in den (blauen) Programmabschnitten vor:
http://www.zbi.uni-saarland.de/zbi/...foV6kompakt.pdf

CitizenX

Here to stay
Avatar
Registered: Nov 2002
Location: Wien
Posts: 989
wenns " 's " hiese würds sinn machen

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14595
das heist das es auf ne klasse verweist (z.b. in php)

z.b. wenn du in der klasse BLA eine funktion berech() hast rufst die fkt so auf: BLA->berech();

so die erklärung eines noobs der es selbst erst grod checkt hot :D

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
oje.. sind ja schon alle php geschädigt hier :)
dem pdf nach zu schließen soll -> im c/c++ context betrachtet werden (woher sich php auch diesen operator ausgeborgt hat)

a->b ist das selbe wie (*a).b

was heißt das jetzt ?

a ist ein zeiger auf eine struktur, b ist der elementname. das funktioniert nur bei strukturen und unions, währe a ein pointer auf irgendeinen anderen datentyp, so muß man die *-notation (bzw []) zum dereferenzieren verwenden.
wäre a direkt die variable der struktur (und nicht der pointer darauf), dann würde man a.b schreiben.

zb:
struct rgb {
int rot,gruen,blau;
}

struct rgb *ZeigeraufFarbton;
struct rgb meinFarbton; // lokale variable am stack

meinFarbton.rot=234; // zugriff auf element rot

// jetzt besorge ich mir den zeiger darauf (oder erstelle es dynamisch, etc)
ZeigeraufFarbton = &meinFarbton;

ZeigeraufFarbton->gruen=123; // gleichbedeutend mit ...
(*ZeigeraufFarbton).gruen=123;


weil aber in c++ eine class eigentlich eine struct ist, welche 'zufällig' auch noch code enthält, läßt es sich dort genauso für instanzen von klassen anwenden (für gewöhnlich hat man nämlich nur einen pointer auf eine instanz) [übrigens, weil das so ist, hat man in java zb komplett auf structs verzichtet]

btw... (ad pdf): binäre (such)bäume - ein ganz wichtiges kapitel in der informatik
Bearbeitet von atrox am 11.05.2003, 21:39

HeuJi

OC Addicted
Avatar
Registered: Jul 2001
Location: Vienna
Posts: 7379
@atrox

Thx, für deine umfangreiche Erklärung!
Das hat mir weitergeholfen!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz