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 2C<br />
Bei der Entwicklung der Klassenbibliothek <strong>von</strong> <strong>Visual</strong> <strong>C++</strong> wurde auf die Verwendung <strong>von</strong> Mehrfachvererbungen verzichtet. Die<br />
Online-Dokumentation merkt dazu an: "Wir haben herausgef<strong>und</strong>en, daß die Mehrfachvererbung weder bei der Entwicklung einer<br />
Klassenbibliothek, noch beim Schreiben ernsthafter Anwendungen benötigt wird." [13]<br />
2.3.6.3 Zuweisungskompatibilität<br />
In <strong>C++</strong> können nur Klassen, die public abgeleitet wurden, vom Compiler implizit in ihre Basisklassen konvertiert werden. Solche <strong>C++</strong><br />
Klassen <strong>und</strong> alle Klassen in Object Pascal sind zuweisungskompatibel mit sich selbst <strong>und</strong> mit ihren Vorfahren.<br />
V<strong>C++</strong><br />
Object Pascal<br />
class Figur{<br />
···<br />
};<br />
class Rechteck : public Figur{<br />
···<br />
};<br />
class R<strong>und</strong>Rechteck : public<br />
Rechteck{<br />
···<br />
};<br />
class Ellipse : public Figur{<br />
···<br />
};<br />
type<br />
Figur = class<br />
···<br />
end;<br />
Rechteck = class(Figur)<br />
···<br />
end;<br />
R<strong>und</strong>Rechteck = class(Rechteck)<br />
···<br />
end;<br />
Ellipse = class(Figur)<br />
···<br />
end;<br />
Figur* F;<br />
Rechteck* R;<br />
R<strong>und</strong>Rechteck* RR;<br />
Ellipse* E;<br />
···<br />
F = F;<br />
F = R;<br />
F = RR;<br />
F = E;<br />
R = RR;<br />
R = F;<br />
// Fehler, inkompatible Typen<br />
R = E;<br />
// Fehler, inkompatible Typen<br />
RR = R;<br />
// Fehler, inkompatible Typen<br />
var F: Figur;<br />
R: Rechteck;<br />
RR: R<strong>und</strong>Rechteck;<br />
E: Ellipse;<br />
···<br />
F := F;<br />
F := R;<br />
F := RR;<br />
F := E;<br />
R := RR;<br />
R := F;<br />
// Fehler, inkompatible Typen<br />
R := E;<br />
// Fehler, inkompatible Typen<br />
RR := R;<br />
// Fehler, inkompatible Typen<br />
Wie man sieht, gilt die Zuweisungskompatibilität umgekehrt nicht. Eine Klasse ist mit keinem ihrer Nachfahren direkt<br />
zuweisungskompatibel (R := F). Zwischen gänzlich unverwandten Klassen, die völlig verschiedenen Ästen der Objekthierarchie<br />
http://ourworld.compuserve.com/homepages/praxisservice/kapit2c.htm (11 of 33) [19.05.2000 15:30:14]