Delphi-PRAXiS
Seite 3 von 10     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vorteile von Delphi (https://www.delphipraxis.net/57508-vorteile-von-delphi.html)

malo 22. Nov 2005 18:04

Re: Vorteile von Delphi
 
Zitat:

Zitat von Binärbaum
Code:
void machWas(int* a)
{
    (*a)++;
}
Ich sehe keinen Unterschied zu Delphi.

Dann werden wir mal deutlicher:
Delphi-Quellcode:
procedure machWas(var a: integer);
begin
  a:= a+1;
end;
und
Code:
void machWas(int* a)
{
    (*a)++;
}
sind nicht viel unterschiedlicher, aber was, wenn man (aus Schusseligkeit, oder warum auch immer) bei C die Dereferenzierung vergisst und folgendes schreibt und somit aus Versehen den Zeiger verändert und nicht den Wert des Integers, auf den a verweist:
Code:
void machWas(int* a)
{
    a++;
}
Das ist theoretisch möglich und wird sogar kompiliert, nur das, was die Prozedur macht, ist in beiden Fällen komplett anders.[/quote]

Wieso machst du das nicht so:
Code:
void machWas(int& a)
{
    a++;
}
Dürfte doch aufs selbe hinauslaufen? int& ist dann doch auch ein call-by-reference. Oder vertu ich mich da?

malo 22. Nov 2005 18:06

Re: Vorteile von Delphi
 
Zitat:

Zitat von cruso
Soviel ich weiß hat Borland gesagt, dass nun auch von der Delphi Programming Language gesprochen werden kann. Mit der Begründung: "Es hat sich soviel geändert". Also seit Delphi 7 kann auch von Delphi Programming Language gesprochen werden!

Einmal das Zitat von Luckie, nur dass ich die wichtigen Stellen markiert habe:
Zitat:

Zitat von Luckie
Du vergleichst Äpfel und Birnen bzw. bist nicht genau genug. Delphi bezeichnet eine IDE von Borland und es ist die Kurzform für Delphi Language, welche eine Pascal basierende Programmiersprache meint. C++ ist nuzr eine Programmiersprache. Was willst du jetzt also vergleichen? Die Sprache Delphi mit der Sprache C++ oder die IDE Delphi mit den verschiedenen IDEs für C++?

Demnach hast du schon Recht, allerdings ist dein Posting völlig bedeutungslos, weil genau das in dem Zitat von Luckie steht (nur anders ausgedrückt).

cruso 22. Nov 2005 18:42

Re: Vorteile von Delphi
 
Naja, hast im Prinzip recht! :P

Oxmyx 22. Nov 2005 19:33

Re: Vorteile von Delphi
 
Zitat:

Zitat von Binärbaum
Dann werden wir mal deutlicher:
[...]

Jetzt hast du grad übersehen, worauf ich hinaus will. Dies hier ist ein Call-by-Reference-Aufruf genau so wie in Delphi:
Code:
int machWas(int& a)
{
    a++;
}
Wenn ich diese Funktion mit einer Variablen aufrufe, wird die aufrufende Variable direkt verändert, ohne Zeiger.

Und ich denke die Sache mit = und == hat man spätestens nach dem ersten großen Fehlersuchen drin.

Phoenix 22. Nov 2005 19:53

Re: Vorteile von Delphi
 
Auch wenn's Offtopic wird: Noch geiler wird's in Java:

Code:
String str="abc";

if (str == "abc") {
   echo("String ist abc")
} else {
   echo("String ist NICHT abc");
Jeder denkt, im IF würde verglichen ob 'abc' im String drinsteht (was es ja tut) und dann ausgeben 'String ist abc'. Es kommt jedoch immer die Ausgabe 'String ist nicht abc' heraus.

Wenn man sich näher damit befasst ist es auch klar, weil in Java der String ein Objekt ist, und die Variable str im Prinzip ja nur ein Pointer auf die konkrete Instanz ist. Und der Pointer (also str) ist sicher nicht "abc" sondern irgend ein Adresswert. Richtig müsste sein:
Code:
if (str.equals("abc")) {
   //hier passt es
}
Und das ist einer der Gründe, warum ich Java so elendig hasse: Der Code tut nicht das wonach er intuitiv aussieht. Das ist bei Delphi zum Glück ganz anders.

Oxmyx 22. Nov 2005 20:00

Re: Vorteile von Delphi
 
Zitat:

Zitat von Phoenix
Auch wenn's Offtopic wird: Noch geiler wird's in Java:
[...]
Und das ist einer der Gründe, warum ich Java so elendig hasse: Der Code tut nicht das wonach er intuitiv aussieht. Das ist bei Delphi zum Glück ganz anders.

Das hat nichts mit Java zu tun, das ist schon so seit es Strings gibt, und jeder Programmierer weiß das. In Delphi würde das genauso wenig funktionieren:
Delphi-Quellcode:
var
  a, b: PChar;
begin
  a := 'abc';
  b := a;
  if b = 'abc' then begin
    // String ist abc
  end
  else
    // String ist nicht abc <== Ausgabe
  begin
end;
Genau das gleiche ist es mit C/C++. Deshalb vergleicht man nullterminierte Strings ja nie direkt, sondern in Delphi z.B. mit CompareStr oder in C/C++ mit strcmp/stricmp.

Tubos 22. Nov 2005 20:09

Re: Vorteile von Delphi
 
Zitat:

Deshalb vergleicht man nullterminierte Strings ja nie direkt, sondern in Delphi z.B. mit CompareStr oder in C/C++ mit strcmp/stricmp.
Nein. In C++ kann man den == Operator überladen.
Man muss das nicht mal selber machen, die string - Klasse aus der Standardbibliothek bietet so eine Funktionalität.

DAS finde ich richtig hässlich an Java: diese ständigen equals - Aufrufe.
Wenn es in Java mal Operatorenüberladung gibt werde ich mich in dieser Sprache auch wohler fühlen.

sniper_w 22. Nov 2005 20:14

Re: Vorteile von Delphi
 
Immer wieder wenn solche Diskusionen auftauchen, kommt es zu einem Fehler. Man sagt so "in C/C++ ...". Ja, grossteils stimmt das, aber C ist NUR eine Untermenge von C++. Es gint dinge die es nur in C++ gibt und nicht im C und zwar "call by reference".
Code:
void something( int &a )
Das ist pures C++.
Und C++ ist "etwas" type sicherer geworden. D.h. man kann nicht alles was man in C schreibt direkt mit einem C++ compiler compilieren lassen, es sei denn es ist innerhalb von "extern "C" {}" direktieve. Z.B.
Code:
void (WINAPI *glBegin)(void);
glBegin = GetProcAddress( dllHandle, "glBegin");
In C geht das wunderbar, in c++ aber nicht (nicht ohne typecasting ).

malo 22. Nov 2005 20:21

Re: Vorteile von Delphi
 
Zitat:

Zitat von sniper_w
Immer wieder wenn solche Diskusionen auftauchen, kommt es zu einem Fehler. Man sagt so "in C/C++ ...". Ja, grossteils stimmt das, aber C ist NUR eine Untermenge von C++.

Bei denen die "C/C++" schreiben tritt meist einer der folgenden Fälle auf:
a) Sie wissen nicht, ob der jew. Code nun unter C oder C++ läuft, oder
b) Sie sind zu Faul sich Gedanken drüber zu machen (wie ich meistens), oder
c) Es läuft in beiden Sprachen (nicht) :mrgreen:

Meistens ist aber tatsächlich C++ gemeint ;)

Oxmyx 22. Nov 2005 20:36

Re: Vorteile von Delphi
 
Zitat:

Zitat von Tubos
Zitat:

Deshalb vergleicht man nullterminierte Strings ja nie direkt, sondern in Delphi z.B. mit CompareStr oder in C/C++ mit strcmp/stricmp.
Nein. In C++ kann man den == Operator überladen.
Man muss das nicht mal selber machen, die string - Klasse aus der Standardbibliothek bietet so eine Funktionalität.

Naja, trotzdem ruft man mit == dann strcmp auf. ;)

Zitat:

DAS finde ich richtig hässlich an Java: diese ständigen equals - Aufrufe.
Wenn es in Java mal Operatorenüberladung gibt werde ich mich in dieser Sprache auch wohler fühlen.
Operatorüberladung fehlt mir auch noch in Win32-Delphi.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.
Seite 3 von 10     123 45     Letzte »    

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