Betriebstechnik | Biographien | Biologie | Chemie | Deutsch | Digitaltechnik |
Electronica | Epochen | Fertigungstechnik | Gemeinschaftskunde | Geographie | Geschichte |
Informatik | Kultur | Kunst | Literatur | Management | Mathematik |
Medizin | Nachrichtentechnik | Philosophie | Physik | Politik | Projekt |
Psychologie | Recht | Sonstige | Sport | Technik | Wirtschaftskunde |
Ähnliche Berichte:
|
Projekte:
|
Papers in anderen sprachen:
|
informatik referate |
1.
Beispiel: graphisches
System für Punkte, Kreise, Linien, Kreisbögen
Klassendiagramm
Vereinbarung
der abgeleiteten Klassen Implementierung
2.
Zugriffsrechte
- steuern die Zugriffs-Erlaubnis auf die Eigenschaften und Methoden einer
Klasse.
private: nur die Methoden der eigenen
Klasse können zugreifen,
protected: die eigenen Methoden und die
Methoden der abgeleiteten Klassen dürfen zugreifen,
public: alle (auch die Methoden
fremder Klassen und 'normale' Funktionen) dürfen zugreifen.
- bei 'braver' Datenkapselung: alle Eigenschaften private, einige (wenige) Methoden public
- Beispiel:
- Zugriffsrechte der geerbten Elemente können in der abgeleiteten Klasse
eingeschränkt werden:
class
Aklasse: public Bklasse (); Zugriffsrechte der geerbten
Elemente bleiben unverändert
class
Aklasse: protected Bklasse (); alle geerbten public-Elemente sind in Aklasse
protected class
Aklasse: private Bklasse (); alle geerbten public- und protected-Elemente sind in Aklasse
private
(Default!!!)
3.
Virtuelle Methoden
'Frühe Bindung': beim Aufruf einer
Element-Funktion wird die Sprung-Adresse bereits zum Übersetzungs-Zeitpunkt
festgelegt.
Beispiel:
Vorteil: Speicherplatzsparend, schnell
Nachteil: Klasse Circle muss MoveTo neu definieren, obwohl 'logisch'
gleicher Ablauf
'Späte Bindung': beim Aufruf der
Element-Funktionen wird die tatsächliche Sprungadresse erst zur Laufzeit
ermittelt (Compiler
erzeugt einen 'indirekten' Sprung über die sogenannte V-Table des
Objekts).
Erreicht man in C++
mittels Schlüsselwort virtual.
Nachteil: mehr Speicherplatz, langsamer
Vorteil: Klasse Circle muss MoveTo nicht neu definieren, kann
geerbte Funktion verwenden.
Beispiel:
Durch den Einsatz der späten Bindung wird 'Polymorphie'
(=Vielgestaltigkeit) sichergestellt: die gleiche
Methode ist je nach Objekt-Art unterschiedlich realisiert.
Wann muss eine Methode virtuell sein?
- wenn sie in den abgeleiteten Klassen unterschiedlich implementiert ist
- und * wenn Sie in einer anderen
Methode der Basisklasse aufgerufen wird oder
* über einen Objekt-Zeiger
vom Typ 'Zeiger auf Basisklasse' aufgerufen wird
Bsp.: Point
*tab [MAXANZ] = // speichert Zeiger auf Point-, for (int
i=0; i<anz; ++i) // Circle-, Arc- und
Line-Objekte
tab[i]->Show ();
4.
Zugriff auf Objekte einer Klasserhierarchie mittels Zeigern
- Zeiger vom Typ 'Zeiger auf Basisklasse' sind in gewissem Umfang
kompatibel zu
Zeigern vom Typ 'Zeiger auf abgeleitete Klasse'
- z.B.: Point
*pp, p1(100,200); Circle *cp,
c1 (100,200,50); pp = &c1; pp->MoveTo(120,220); // cout
<< pp->getRadius(); // nicht möglich,
wenn getRadius Methode // von
Circle ist cout <<
((Circle*)pp)->getRadius(); // cp =
&p1;
// nicht erlaubt, da sonst
Zugriffe auf // nicht
vorhandene Komponenten möglich
5.
Abstrakte Klassen
- dient nur als Basisklasse für andere Klassen
- es können keine Objekte angelegt werden (allerdings Zeiger und Referenzen)
- enthält mindestens eine 'abstrakte Funktion' (pure virtual
function)
- abstrakte Funktion:
- virtuelle Funktion, für die
in der Basisklasse keine Implementierung existiert
(da
Implementierung nicht möglich oder nicht sinnvoll ist)
- z.B.: class
APoint ;
- in den
abgeleiteten Klassen müssen die abstrakten Funktionen durch
'konkrete' Funktionen ersetzt werden
6. Mehrfachvererbung
Objekte können auch von mehreren anderen Objekten erben
Vereinbarung
der mehrfach abgeleiteten Klassen Implementierung
Das Problem bei der Mehrfachvererbung besteht darin, dass ein Objekt
Eigenschaften auch mehrfach vererbt bekommen kann.
Referate über:
|
Datenschutz |
Copyright ©
2024 - Alle Rechte vorbehalten AZreferate.com |
Verwenden sie diese referate ihre eigene arbeit zu schaffen. Kopieren oder herunterladen nicht einfach diese # Hauptseite # Kontact / Impressum |