05.11.2013 Aufrufe

Vergleich von Delphi und Visual C++ - Inhalt

Vergleich von Delphi und Visual C++ - Inhalt

Vergleich von Delphi und Visual C++ - Inhalt

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 />

2.3.6.7 Friends<br />

Durch "Friend"-Deklarationen lassen sich in <strong>C++</strong> Zugriffseinschränkungen einer Klasse für ausgewählte Funktionen oder Klassen<br />

deaktivieren. In Object Pascal existiert ein implizites Friend-Modell, bei dem automatisch alle Klassen "Fre<strong>und</strong>e" sind, die innerhalb einer<br />

Unit implementiert sind.<br />

Durch die expliziten <strong>und</strong> impliziten Fre<strong>und</strong>schaften wird die Klassen-Kapselung aufgehoben <strong>und</strong> somit bewußt ein elementarer Gr<strong>und</strong>satz<br />

objektorientierter Entwicklung unterlaufen. Andererseits ermöglichen es Fre<strong>und</strong>schaften oftmals, daß Klassen klein <strong>und</strong> einfach gehalten<br />

werden können.<br />

V<strong>C++</strong><br />

Object Pascal<br />

class A{<br />

friend class B;<br />

// Klasse B ist<br />

// Fre<strong>und</strong> <strong>von</strong> A<br />

private:<br />

int TopSecret;<br />

};<br />

class B{<br />

public:<br />

void WeiseZu(A* ObjA);<br />

};<br />

void B::WeiseZu(A* ObjA)<br />

{<br />

ObjA->TopSecret = 7;<br />

// B hat Zugriff auf<br />

// private Daten <strong>von</strong> A<br />

};<br />

void main()<br />

{<br />

A* Obj1 = new A;<br />

B* Obj2 = new B;<br />

Obj2->WeiseZu(Obj1);<br />

type<br />

A = class<br />

private<br />

TopSecret: Integer;<br />

end;<br />

B = class<br />

public<br />

procedure WeiseZu(ObjA: A);<br />

end;<br />

procedure B.WeiseZu(ObjA: A);<br />

begin<br />

ObjA.TopSecret := 7;<br />

// B hat Zugriff auf<br />

// private Daten <strong>von</strong> A<br />

end;<br />

var Obj1: A; Obj2: B;<br />

begin<br />

Obj1:= A.Create;<br />

Obj2:= B.Create;<br />

}<br />

delete Obj1;<br />

delete Obj2;<br />

Obj2.WeiseZu(Obj1);<br />

Obj1.Free;<br />

Obj2.Free;<br />

end.<br />

http://ourworld.compuserve.com/homepages/praxisservice/kapit2c.htm (26 of 33) [19.05.2000 15:30:15]

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!