Delphi-PRAXiS

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)

Matze 23. Dez 2003 11:41


Vergleich: Delphi - C++
 
Moin!

Kennt jemand einen Link, wo die Parallelitäten zu C++ und Delphi, bzw. die Unterschiede dargestellt sind?

Ich möchte langsam mal mit C++ anfangen, und da ich Delphi einigermaßen beherrsche, möchte ich mir das "Umlernen" dadurch erleichtern.

In der OH sind teilweise schöne Beispiele, je in C++ und Delphi verfasst, wo man die Ähnlichkeiten sieht, aber so richtig viel hilft mir das auch nicht. ;)

Z.B. heißt in C++ das var glaube ich float. Solche Befehle meine ich.

Ich wäre echt dankbar, wenn jemand gute Links kennt, natürlich, wenn ihr die Befehle alle auswendig kennt, könnt ihr sie ruhig hier posten. :mrgreen:

Akut-Programming 23. Dez 2003 11:48

Re: Vergleich: Delphi - C++
 
Zitat:

Zitat von Matze
Z.B. heißt in C++ das var glaube ich float. Solche Befehle meine ich.

Hehe, ne float, ist nicht wie var, float ist ein Variablentyp, der Gleitkommazahlen darstellen kann. Also ich hab jetzt auch von der Firma aus noch mit C++ angefangen. Ich finds eigentlich garnicht mal so schlecht.. ist eben nur gewöhungsbedürftig, wenn man vorher mit Delphi gearbeitet hat. Aber mit n ordentlichen Tutorial und n guten Buch klappt dat alles och früher oder später! :zwinker:

Sanchez 23. Dez 2003 12:02

Re: Vergleich: Delphi - C++
 
Ich habe in der Schule C, C++ gelernt. Erst durch die arbeit bin ich zu Delphi gekommen.
Allerdings ist da nicht besonders viel um. Wenn man eine moderne Programmiersprache beherrscht hat man eine andere bald. Es sind eben immer ein paar Eigenheiten, die man bald hat.

Ich finde Pascal um einiges lesbarer. Am Anfang störte mich immer, dass ich lokale Variablen nur im Funktionskopf deklarieren kann. Dadurch steigt aber mE die Übersichtlichkeit immens.
In C find ich die Klammern hinter jeden Funktionsaufruf besser. Dadurch ist sofort erkennbar, dass es sich um eine Funktion und nicht um eine Variable handelt.

Das größte Problem bei einer neuen Programmiersprache ist aber nicht die Symantik, sondern die Kenntnis der zugrundeliegenden Klassenbibliothek (VCL, MFC, ...).

Luckie 23. Dez 2003 12:07

Re: Vergleich: Delphi - C++
 
auf der HP von scp ist eine entsprechender Text. Es gibt auch einen Text, da hat das jemand als Teil einer Diplomarbeit oder so gemacht: [google]Vergleich delphi c++[/google]

merlin17 23. Dez 2003 12:14

Re: Vergleich: Delphi - C++
 
hier ist auch eine nette gegenüberstellung (tw. etwas abstrakt):

http://www.marcocantu.com/papers/ooplang.htm

:-) thomas

Matze 23. Dez 2003 12:17

Re: Vergleich: Delphi - C++
 
Vielen Dank euch allen!

Muss man eigentlich bei C++ den Pfeil (->) immer so von Hand eintippen?
In Delphi geht das so schön mit dem Punkt (.).

[Edit]@merlin17: Der Link geht irgendwie nicht :gruebel:[/Edit]

Sanchez 23. Dez 2003 12:19

Re: Vergleich: Delphi - C++
 
In C gibts auch den Punkt
Das -> in C entspricht ^. in Delphi.

w3seek 23. Dez 2003 12:24

Re: Vergleich: Delphi - C++
 
Zitat:

Zitat von Matze
Muss man eigentlich bei C++ den Pfeil (->) immer so von Hand eintippen?
In Delphi geht das so schön mit dem Punkt (.).

der -> in C ist nichts anderes als in delphi ^.
der punkt in C bedeutet das selbe wie in Delphi (zumindest bei z.B. structs, bei Methoden etc von Klassen reicht in Delphi ein . aus wobei eigentlich ein ^. richtiger waere)

Matze 23. Dez 2003 12:25

Re: Vergleich: Delphi - C++
 
Zitat:

Zitat von Sanchez
In C gibts auch den Punkt
Das -> in C entspricht ^. in Delphi.

In der OH ist folgendes beispiel:
Code:
PaintBox1->Canvas->TextOut(10, Y, IntToStr(AStruct->I));
Da sieht das irgendwie nicht so aus, naja, gut, dass es den Punkt auch gibt :)

Matze 23. Dez 2003 12:26

Re: Vergleich: Delphi - C++
 
Zitat:

Zitat von w3seek
... reicht in Delphi ein . aus wobei eigentlich ein ^. richtiger waere)

Hab ich noch nie verwended :oops:

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 19:04 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 by Thomas Breitkreuz