Artikel pedia
| Home | Kontakt | Artikel einreichen | Oberseite 50 artikel | Oberseite 50 autors
 
 


Artikel kategorien
Letztes fugte hinzu
    Ms-access

   Instrumentation + schnittstellen

   Pc tuning - volle kraft voraus für ihr system

   Informatorische grundlagen

   Javascript

   Interne sortieralgorithmen - der kern der sache

   Plotter und sonstige drucker

   Frage 20 (rössl priska)

   Internet - programmierung

   Monitore

   Semesterarbeit und spezialgebiet für informatik

   Erörterungs zum thema

   Inhaltsverzeichnis

   Einführung in die entwicklung ganzheitlicher informationssysteme:

   Titel dokument
alle kategorien

  Vererbung

Vererbung (c) Steinbrecher Christian                                                                               Diese Seite ist für 1024 x 768 optimiert  Inhaltsverzeichnis  1. Beispiel  2. Zugriffsrechte  3. Virtuelle Methoden  4. Zugriff auf Objekte einer Klasserhierarchie mittels Zeigern  5. Abstrakte Klassen  6.

Mehrfachvererbung 1. Beispiel: graphisches System für Punkte, Kreise, Linien, Kreisbögen Klassendiagramm Vereinbarung der abgeleiteten Klassen Implementierung zurück zum Inhaltsverzeichnis   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!!!) zurück zum Inhaltsverzeichnis   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 (); zurück zum Inhaltsverzeichnis   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 zurück zum Inhaltsverzeichnis   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 {                   .


..                   virtual void Show () = 0;    // abstrakte Funktion                   ...               }; - in den abgeleiteten Klassen müssen die abstrakten Funktionen durch "konkrete" Funktionen ersetzt werden zurück zum Inhaltsverzeichnis   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. zurück zum Inhaltsverzeichnis  

Suchen artikel im kategorien
Schlüsselwort
  
Kategorien
  
  
   Zusammenfassung Der Vorleser

   sachtextanalyse

   interpretation zwist

   Fabel interpretation

   literarische charakteristik

   interpretation bender heimkehr

   felix lateinbuch

   interpretation der taucher von schiller

   textbeschreibung

   charakterisierung eduard selicke
Anmerkungen:

* Name:

* Email:

URL:


* Diskussion: (NO HTML)




| impressum | datenschutz

© Copyright Artikelpedia.com