Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Vergleich: Delphi - C++ (https://www.delphipraxis.net/13651-vergleich-delphi-c.html)

Sanchez 23. Dez 2003 12:27

Re: Vergleich: Delphi - C++
 
Delphi-Quellcode:
PaintBox1->Canvas->TextOut(10, Y, IntToStr(AStruct->I));
In diesem Fall ist PaintBox1 ein Pointer auf ein Paintbox-Objekt

Delphi-Quellcode:
PaintBox1.Canvas->TextOut(10, Y, IntToStr(AStruct->I));
Hier hast du ein waschechtes Paintbox-Objekt

Matze 23. Dez 2003 12:55

Re: Vergleich: Delphi - C++
 
OK, vielen Dank!

@Luckie: Danke für dein Google-Link, der erste Eintrag ist echt genial! :D

Gandalfus 23. Dez 2003 12:58

Re: Vergleich: Delphi - C++
 
http://www.grundlagen.delphi-source.de/delphi/cpp.shtml

scp 23. Dez 2003 13:04

Re: Vergleich: Delphi - C++
 
Wie schon oben erwähnt, hier der Direktlink dazu:

http://scp.assarbad.org/delphi_c.htm

w3seek 23. Dez 2003 13:12

Re: Vergleich: Delphi - C++
 
ein paar beispiele:
Code:
Code in C:
RECT r;
PRECT pr;
r.left = r.right = 0;
pr = &r; // pr zeigt jetzt auf r
if(pr->left != r.left)
  // dieser Fall wird nie eintreten

Code in Object Pascal:
var
  r: TRect;
  pr: PRect;
begin
  r.Left := 0;
  r.Right := 0;
  pr := @r;
  if(pr^.left <> r.left)
    // dieser Fall wird nie eintreten
Aufruf von Methoden:
Code:
Code in C++:
Instanz->Methode(...);

Code in Delphi:
Instanz.Methode(...); // wobei hier ein ^. (entsprechend zu dem -> in C++ angebracht waere weil Instanz eigentlich nur ein Pointer ist)

Matze 23. Dez 2003 13:19

Re: Vergleich: Delphi - C++
 
Hui!

Vielen vielen Dank! :thumb:
Das ist natürlich echt super, alles so schön gegenüber gestellt.

Vielen Dank auch an euch 3!

Sanchez 23. Dez 2003 13:27

Re: Vergleich: Delphi - C++
 
Zitat:

Zitat von w3seek
Aufruf von Methoden:
Code:
Code in C++:
Instanz->Methode(...);

Code in Delphi:
Instanz.Methode(...); // wobei hier ein ^. (entsprechend zu dem -> in C++ angebracht waere weil Instanz eigentlich nur ein Pointer ist)

Kommt darauf an, wie du Instanz definierst. Für mich bedeuted Instanz ein Objekt von einer Klasse.
Alse

in C++
Delphi-Quellcode:
  CEinKlasse klasse;
  klasse.Create();
  klasse.MachWas();
in Delphi Language
Delphi-Quellcode:
var klasse : TEineKlasse;
begin
  klasse := TEineKlasse.Create();
  klasse.MachWas;
oder auch ein Pointer auf ein Objekt:

in C++
Delphi-Quellcode:
  CEinKlasse * klasse;
  klasse->Create();
  klasse->MachWas();
in Delphi Language
Delphi-Quellcode:
var klasse : ^TEineKlasse;
begin
  klasse := @TEineKlasse.Create();
  klasse^.MachWas;

choose 23. Dez 2003 13:34

Re: Vergleich: Delphi - C++
 
Hallo Sanchez, das stimmt so nicht ganz.

In C++ würde
Code:
MyClass instance1;
MyClass instance2;

//...

instance2= instance1; // shallow copy
instance2.modifyInstance; // doesn't touch instance1
zwei unterschiedliche Exemplare beschreiben, wohingegen
Code:
MyClass *instance1;
MyClass *instance2;

//...
instance2= instance1; // reference copy (identical instance!)
instance2->modifyInstance; // !modifies also instance1
dem Verfahren in Delphi entspricht.

Deine Variante
Delphi-Quellcode:
var
  myInstance : @TMyClass;
entspricht hingegen
Code:
MyClass **instance1;
in C++

Sanchez 23. Dez 2003 13:38

Re: Vergleich: Delphi - C++
 
@Choose
Stimmt, in Delphi ist die Instanz ja bereits eine Referenz aufs Objekt :wall:

Merken, erst denken dann schreiben :mrgreen:

w3seek 23. Dez 2003 13:39

Re: Vergleich: Delphi - C++
 
da hast du recht, mein Fehler. Naja hab mit C++ nur einmal vor langer zeit was gemacht, ansi c rulez ;)
edit: oder auch nicht ;) schon lang nix mehr mit delphi gemacht ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:05 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz