Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ ? "icoWork.Handle := pWork^; " - Benötige Übersetzung :) (https://www.delphipraxis.net/37292-c-icowork-handle-%3D-pwork%5E%3B-benoetige-uebersetzung.html)

shareholder 4. Jan 2005 05:12


C++ ? "icoWork.Handle := pWork^; " - Benötige Über
 
Moin,

Kann mir jmd. das hier
Delphi-Quellcode:
icoWork.Handle := pWork^;
in c++ übersetzen?

und was bedeutet überhaupt das ^. :wall:

dizzy 4. Jan 2005 05:56

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
Zitat:

Zitat von shareholder
und was bedeutet überhaupt das ^. :wall:

Das ist der sog. Dereferenzierungsoperator, der angibt, dass du nicht den die Speicherstelle des Pointers meinst, sondern die Speicherstelle auf die er zeigt.

Unter C(++) ist das *.

Je nach dem ob "icoWork" dynamisch oder statisch instanziiert ist müsste es demnach so heissen:
Code:
icoWork->Handle = pWork*;
// oder
icoWork.Handle = pWork*;
(So meine ich das zumindest mal in unserer Vorlesug erhascht zu haben :D)

Gruss,
Fabian

shareholder 4. Jan 2005 06:40

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
danke schatz :)


;-)

Chewie 4. Jan 2005 12:05

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
Und das funktioniert so? Meinen C-Kenntnissen nach istd er *-Operator ein Präfix-Operator:

Code:
coWork->Handle = [color=red]*[/color]pWork;
// oder
icoWork.Handle = [color=red]*[/color]pWork;

Oxmyx 4. Jan 2005 12:12

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
Der *-Operator kann sowohl Referenzierungs, als auch Dereferenzierungsoperator sein und steht immer vor der Variablen, nie dahinter.

Er referenziert einen Zeigertyp und dereferenziert einen Zeiger:
Code:
int *a, b;
a = new int;
b = *a;
Und der ->-Operator ist der Zeiger-auf-Element-Operator, das ist in Delphi einfach nur der .-Operator.

Chewie 4. Jan 2005 12:15

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
Zitat:

Zitat von Oxmyx
Und der ->-Operator ist der Zeiger-auf-Element-Operator, das ist in Delphi einfach nur der .-Operator.

Genauer genommen ist es die ^. - Kombination, der Delphi-Compiler ist aber so freundlich und erlabut dir, das ^ wegzulassen. Ich weiß nicht, ob das z.B. auch der FPC tut.

Oxmyx 4. Jan 2005 12:23

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
Zitat:

Zitat von Chewie
Zitat:

Zitat von Oxmyx
Und der ->-Operator ist der Zeiger-auf-Element-Operator, das ist in Delphi einfach nur der .-Operator.

Genauer genommen ist es die ^. - Kombination, der Delphi-Compiler ist aber so freundlich und erlabut dir, das ^ wegzulassen. Ich weiß nicht, ob das z.B. auch der FPC tut.

Als ich ihn mir das letzte Mal angeschaut habe, tat er das noch nicht.

dizzy 4. Jan 2005 12:49

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
Imho ist -> nach wie vor zwingend (und hässlich :D). Und Mist auch... hab ich mir doch fast gedacht, dass der * vor die Variable kommt. Alles weggesoffen :cheers:

Cheers,
Fabian

btw:
Zitat:

Zitat von shareholder
danke schatz

:shock:

Oxmyx 4. Jan 2005 12:58

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
Zitat:

Zitat von dizzy
Imho ist -> nach wie vor zwingend (und hässlich :D). Und Mist auch... hab ich mir doch fast gedacht, dass der * vor die Variable kommt. Alles weggesoffen :cheers:

Cheers,
Fabian

Ich finde, dass -> schön aussieht. Man sieht so richtig, dass man auf das Element stößt, wenn man dem Zeiger (->) folgt. ;-)

dizzy 4. Jan 2005 13:05

Re: C++ ? "icoWork.Handle := pWork^; " - Benötige
 
Zitat:

Zitat von Oxmyx
Ich finde, dass -> schön aussieht. Man sieht so richtig, dass man auf das Element stößt, wenn man dem Zeiger (->) folgt. ;-)

Hmpf, aber ist deutlich nerviger zu schreiben als ".". Also dann sogar lieber ^. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz