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.

};<br />

<strong>Vergleich</strong> <strong>von</strong> <strong>Delphi</strong> <strong>und</strong> <strong>Visual</strong> <strong>C++</strong> - Kapitel 2C<br />

class B : public A<br />

{<br />

typedef A inherited;<br />

void virtual print();<br />

···<br />

};<br />

class C : public B<br />

{<br />

typedef B inherited;<br />

void virtual print();<br />

···<br />

};<br />

void C::print()<br />

{<br />

inherited::print();<br />

···<br />

};<br />

Die jeweilige typedef-Deklaration stellt eine lokale Typ-Deklaration dar. Der Gültigkeitsbereich eines klassen-lokalen Typs ist auf die<br />

Klasse <strong>und</strong> deren Klassen-Methoden beschränkt, in dem er deklariert wurde. Durch den begrenzten Gültigkeitsbereich ist sichergestellt,<br />

daß inherited für jede Klasse einmalig ist <strong>und</strong> keine Konflikte mit Basis- oder abgeleiteten Klassen auftreten können, die einen eigenen Typ<br />

unter dem selben Namen deklariert haben.<br />

Object Pascal gestattet keine lokalen Typ-Deklarationen.<br />

Bei der Vererbung kann in <strong>C++</strong> optional angegeben werden, ob die Vererbung private oder public erfolgen soll (voreingestellt ist private).<br />

class B : public A<br />

{<br />

...<br />

};<br />

class B : private A<br />

{<br />

...<br />

};<br />

Protected- <strong>und</strong> public- Elemente der Basisklasse werden bei einer private-Ableitung zu private-Elementen. Ableitungen in Object Pascal<br />

entsprechen der public Ableitung in <strong>C++</strong>: die Zugriffsrechte der Basisklasse bleiben in der abgeleiteten Klasse erhalten.<br />

Neben der Einfachvererbung (single inheritance) gestattet <strong>C++</strong> zusätzlich Mehrfachvererbung (multiple inheritance), bei der eine<br />

abgeleitete Klasse aus mehreren Basisklassen gebildet wird. In Anlehnung an das vierte Bild in Kapitel 2.1 kann Klasse<br />

"Amphibienfahrzeug" durch Mehrfachvererbung aus Land- <strong>und</strong> Wasserfahrzeug gebildet werden:<br />

class AmphibienFahrzeug : public LandFahrzeug,<br />

private WasserFahrzeug<br />

{<br />

...<br />

};<br />

Probleme können Mehrdeutigkeiten bereiten, wenn Elemente mit gleichem Namen (aber unterschiedlicher Funktionalität) in mehreren<br />

Basisklassen existieren.<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!