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. Vererbung in einem Beispiel |
Die Klasse
Point bildet die Basisklasse, von ihr werden die Klassen Circle und Line
abgeleitet.
Die Klasse Arc ist von der Klasse Circle abgeleitet
und damit auch von der Klasse Point,
Vereinbarung der abgeleiteten Klassen: |
Bei der
Vereinbarung der Klasse gibt man nach einem Doppelpunkt an, von welcher Klasse
man erben will.
Daraufhin werden alle Eigenschaften und Methoden auf
die man Zugriff hat geerbt (->Zugriffsrechte).
class Arc: public Circle ; class Line: public Point void Circle:Show () |
2. Zugriffsrechte |
Zugriffsrechte steuern die Zugriffs-Erlaubnis von
Eigenschaften und Methoden einer Klasse. Mit ihnen kann man auch festlegen wie
sich
abgeleitete Klassen bei der Vererbung verhalten.
Es gibt 3 Typen von Zugriffsrechten:
private |
nur Methoden der eigenen Klassen
dürfen auf Eigenschaften und Methoden der Klasse zugreifen. |
protected |
Methoden der eigenen und Methoden
der abgeleiteten Klassse könnern zugreifen.
|
public |
Alle dürfen auf die Eigenschaften
und Methoden der Klasse zugreifen. |
Bei sauberer Datenkapselung sind alle Eigenschaften private, einige der Methoden public um Zugriff von außen zu ermöglichen.
Zugriffsrechte der gererbten Klasse 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:
|
Der Compiler erzeugt den Aufruf von Point::Hide und Point::Show
VT: speicherplatzsparend, schnell
NT: die abgeleitete Klasse Circle muss MoveTo
neu definieren obwohl logisch der gleiche Ablauf besteht.
Späte Bindung: |
Beim Aufruf einer Element-Funktion wird die
tatsächliche Sprung-Adresse erst zu Laufzeit ermittelt.
Dies geschieht in dem man bei der Element-Funktion
das Präfix virtual angibt
Beispiel:
class Circle: public Point ; |
Circle::Hide und Circle::Show sind automatisch auch virtuelle Funktionen da die Basisfunktion virtuell ist.
NT: braucht mehr Speicherplatz, langsam
VT: Show und Hide werden in der Funktion
MoveTo verwendet, da sie aber virtuelle Funktionen sind
braucht
die abgeleitete Klasse Circle MoveTo nicht neu definieren, sondern kann die
geerbte Funktion verwenden.
Durch den Einsatz der späten Bindung wird die
'Polymorphie' ( = Vielgestaltigkeit ) sichergestellt. Die
gleiche Methode ist je nach Objektart
unterschiedlich realisiert.
Wann muss eine Methode virtuell sein ?:
wenn sie in den abgeleiteten Klassen unterschiedlich implementiert ist.
wenn Sie in einer anderen Methode der Basisklasse aufgerufen wird ( siehe obiges Beispiel )
wenn man mit Zeigern auf Basisklasse arbeitet.
Siehe C-HÜ ARCHOPIE
4. Zugriff auf Objekte mittels Zeigern |
Zeiger vom Typ Basisklasse sind teilweise kompatibel mit Zeigern auf abgeleitete Klassen.
Beispiel
folgende Operation möglich pp= &c1; oder cout << ((Circle*) pp)->GetRadius(); nicht erlaubt ist es umgekehrt z.B.: pc = &p1; Hier könnte man die Funktion getRadius
aufrufen, die es bei einem |
5. Abstrakte Klasse |
Abstrakte Klassen dienen nur als Basisklasse für andere Klassen haben aber sonst keine Funktion
Es können keine Objekte angelegt werden. Allerdings kann man Zeiger und Referenzen anlegen.
Eine abstrakte Klasse muss eine abstrakte Funktion (pure virtuel function) enthalten.
Defintion einer abstrakten Funktion
wichtig ist das Angeben
des = 0 |
In den abgeleiteten Klassen müssen die abstrakten Funktionen dann durch 'konkrete' Funktionen ersetzt werden.
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 |