sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #28791
Re: Ang.: C++ syntaks.
Christian Hemdrup wrote:
> Hej SSLUG'ere
>
> Er der nogen, som kan hjælpe mig ?
>
> Jeg har en del programmeringserfaring i Windrop, mest under DELPHI (4.0) og
> Pascal (så det der med object-orienteret programmering er ikke ukendt), men
> da
> jeg her forleden dag begyndte at se nærmere på C++ begyndte mine grå hår i
> tindingen
> at skifte farve til helt hvid.
>
> Jeg så noget jeg ikke forstår (det vil der sikkert komme meget mere af !),
> men:
>
> A->B;
>
> Selve operatoren "->" (de to pinger er indsat for tydeliggørelsen) giver mig
> anledning til
> det føromtalte "farveskift".
>
> Hvad gør denne operator ? (jeg kan ikke finde noget som helst om den i min
> C++-lærebog.)
Den er nok mest brugt i C lærebøger, men den bruges skam også i
C++.. Lad os kikke lidt.
vi definere.
class Aa {
public:
int element1;
int element2;
Aa *next;
Aa &Next;
};
Derefter kan vi bruge denne feks.
Aa B;
så kan man jo refere til elementerne som
B.element1 = 1;
B.element2 = 2;
Men dette er meget statisk og kan ikke bruges til så mange ting,
skal man benytte det til lidt mere kan man også
Aa *A = new Aa;
men nu skal man benytte den operatorer du spørger om.
feks for at referer til elementerne skal man
A->element1 = 1;
A->element2 = 2;
Eller hvis man vil sammenlign, så er den
(*A).element1 = 1;
(*A).element2 = 2;
Så -> operatoreren er brugt nå man har en pointer til en klasse, eller
struktuer
og man vil refere til indeholdet af denne enhed, men "." operatoreren benyttes
når man vil refere til elementer af en enhed man har (eller en enhed man har en
refereance til).
Men nu kan vi jo gøre det følgene.
B.next = A;
og vi kan gøre
B.Next = *A;
eller
A->next = &B;
A->Next = B;
har du brug for mere info, sig til :->.
> (Er det noget med at variabel A flyttes til B ? Gælder det kun for Arrays
> eller også simple
> variable ? Må der være blanke mellem (altså A -> B ;) ? .... OSV, OSV,
> ... OSV ?
Du har fuldstændig misforstået betydningen.
A->B, betyder A indeholder B, og du addressere B, via A.
>
>
> Kender nogen en god reference ?
Der er en del af dem, desværre har jeg ikke mine hos mig for tiden.
mvh
mike.
--
#include "stddisclaimer.h"
Email : mailto://mike@xxxxxxxxx Org : DKUUG, *Team Amiga*, SSLUG
Telf : +45 39670249 Fax : +45 35110000---04586
ICQ : 53913906 Web : http://vip.cybercity.dk/~ccc30647
(Hard work is great, as long as you also remember to live)
Follow ups
References