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 />
class A{<br />
friend void GlobalProc(A* ObjA);<br />
private:<br />
int TopSecret;<br />
};<br />
keine Fre<strong>und</strong>schaften<br />
für einzelne<br />
Funktionen<br />
<strong>und</strong> Methoden<br />
// globale Funktion<br />
void GlobalProc(A* ObjA)<br />
{<br />
ObjA->TopSecret = 5;<br />
};<br />
void main()<br />
{<br />
A Obj;<br />
GlobalProc(&Obj);<br />
}<br />
Im letzten Beispiel erhält eine globale Funktion GlobalProc die vollständige Zugriffsberechtigung auf alle geschützten Elemente in der<br />
Klasse A (hier auf die private Variable TopSecret).<br />
Um zu verhindern, daß unbeabsichtigt auf geschützte Klassenelemente anderer Klassen zugegriffen wird, müssen in Object Pascal einzelne<br />
Klassen in separaten Units untergebracht werden.<br />
2.3.6.8 Überladen <strong>von</strong> Operatoren<br />
Ein Spezialfall des Überladens <strong>von</strong> Funktionen in <strong>C++</strong> stellt das Überladen <strong>von</strong> Operatoren (operator overloading) dar. Vordefinierte<br />
Operatoren erlangen, angewandt auf Klassen, per Definition eine neue Bedeutung. Unter Verwendung des Schlüsselworts "operator" lautet<br />
die generelle Syntax:<br />
Ergebnistyp operator Operator-Zeichen ( ... , ... );<br />
Priorität <strong>und</strong> Assoziativität des überladenen Operators bleiben erhalten. Die zu Beginn des Kapitels eingeführte Klasse Komplex wird im<br />
Beispiel um den Operator "+" erweitert:<br />
class Komplex<br />
{<br />
public:<br />
void Zuweisung(double r,<br />
double i);<br />
void Ausgabe();<br />
Komplex operator+(Komplex z);<br />
private:<br />
double Real;<br />
double Imag;<br />
};<br />
...<br />
Komplex Komplex::operator+(Komplex z)<br />
{<br />
http://ourworld.compuserve.com/homepages/praxisservice/kapit2c.htm (27 of 33) [19.05.2000 15:30:15]