Vergleich von Delphi und Visual C++ - Inhalt
Vergleich von Delphi und Visual C++ - Inhalt
Vergleich von Delphi und Visual C++ - Inhalt
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Vergleich</strong> <strong>von</strong> <strong>Delphi</strong> <strong>und</strong> <strong>Visual</strong> <strong>C++</strong> - Kapitel 2B<br />
#include <br />
int x[8], y[8];<br />
x[0] = 8;<br />
x[1] = 14;<br />
x[2] = 3;<br />
y = x; // Fehler<br />
memcpy(y, x, sizeof(x));<br />
var x, y: Array[1..8] of Integer;<br />
x[1]:= 8;<br />
x[2]:= 14;<br />
x[3]:= 3;<br />
y:= x;<br />
Ein Problem stellen Überschreitungen der Indexgrenzen in <strong>C++</strong> dar. In einem 4 Elemente umfassenden Array wird ein Zugriff auf ein fünftes, nicht<br />
gültiges Element, in der Art<br />
z[4]:= 10;<br />
anstandslos <strong>und</strong> ohne Warnhinweise <strong>von</strong> <strong>C++</strong> übersetzt, obwohl ein Zugriff auf einen Speicherbereich außerhalb des Arrays erfolgt! Das ist ein<br />
Programmierfehler, der einem Programmierer leicht unterläuft, der aber schwerwiegende Folgen nach sich ziehen kann, die im ungünstigsten Fall<br />
zunächst nicht einmal bemerkt werden. Die Fehlersuche gestaltet sich entsprechend schwierig. Object Pascal unterbindet die Überschreitung <strong>von</strong><br />
Array-Grenzen zur Übersetzungs- <strong>und</strong> zur Laufzeit. Letzteres jedoch nur dann, wenn das Programm mit gesetzter Projektoption "Bereichsüberprüfung"<br />
compiliert wurde. Wird zur Laufzeit die Array-Grenze überschritten, so wird wiederum eine Exception der Art ERangeError ausgelöst.<br />
Am 2. April 1981 äußerte Brian W. Kernighan, einer der Entwickler <strong>von</strong> C, seine Meinung über Standard-Pascal in einem Aufsatz mit dem Titel<br />
"Warum Pascal nicht meine bevorzugte Programmiersprache ist" [12]. Der gravierendste sprachliche Mangel <strong>von</strong> Pascal ist seiner Meinung nach die<br />
Tatsache, daß Funktionen <strong>und</strong> Prozeduren als Parameter nur Arrays mit fester Größe akzeptieren. Durch diese Einschränkung ist es in Standard-Pascal<br />
nicht möglich Funktionen zu schreiben, die verschieden große Arrays als Parameter akzeptieren. Object Pascal erweitert Standard-Pascal deshalb an<br />
dieser Stelle <strong>und</strong> führt "Offene Array-Parameter" ein (Open Array). <strong>C++</strong> kennt derartige Typen unter dem Begriff der "Incomplete Types".<br />
V<strong>C++</strong><br />
Object Pascal<br />
http://ourworld.compuserve.com/homepages/praxisservice/kapit2b.htm (6 of 52) [19.05.2000 15:30:08]