Ein Crashkurs

Gewinnen beim erben

Vererbung ist Gewinn Die Vererbung von Klassen hat einen sehr positiven und gewollten Nebeneffekt Man kann Zeiger auf eine Basisklasse verwenden um Funktionalität in abgeleiteten Klassen aufzurufen Was das soll erläutert das folgende Beispiel allerdings diesmal mit einem Satz an Geometrie Klassen Angenommen geometrische Objekte Kreis Viereck Dreieck sollen im Quellcode abgebildet werden Und angenommen im Zuge des Programms sollen diese Elemente am Bildschirm dargestellt werden Mit normalem C Code würde man drei Strukturen definieren Passend zu diesen Strukturen gäbe es drei Ausgabefunktionen DrawViereck Recheck p DrawKreis Kreis DrawDreieck Dreieck Diese Herangehensweise macht die Verwaltung der einzelnen Objekte aufwendig Hat man mehrere Objekte von jedem Typ so benötigt man im Prinzip eine Liste für die Verwaltung von Dreiecken eine für Vierecke und so weiter Um dann alle Elemente anzuzeigen müsste zunächst über die Liste der Dreiecke dann über die der Vierecke und schlie lich über die Liste der Kreise iteriert werden In C löst man ein derartiges Problem durch eine Basisklasse und eine Liste die Elemente vom Typ der Basisklasse aufnehmen kann class Geo Geo virtual void Draw Diese Basisklasse Geo verfügt über einen Konstruktor sowie über die Methode Draw Diese ist und das ist neu für diese Einführung als gekennzeichnet Diese Kennzeichnung besagt dass die Methode Draw innerhalb der Klasse Geo nicht implementiert wird deshalb können Instanzen von Geo auch nicht erzeugt werden Klassen die mindestens eine Funktion enthalten sind nur als Basisklassen zum Ableiten zu gebrauchen Solche Klassen nennt man abstrakte Basisklassen Allerdings Zeiger auf Objekte vom Typ der Basisklasse können sehr wohl verwendet werden und dies passiert weiter unten im Beispiel Eine Basisklasse muss nicht notwendigerweise abstrakt sein auch für das Beispiel wäre es nicht erforderlich gewesen Draw zu definieren Allerdings konnte so der Begriff der abstrakten Klassen leicht eingeführt werden Nachdem Geo Objekte nicht instanziert werden können müssen die tatsächlichen Geometrie Elemente nun von Geo abgeleitet werden Alle erhalten auch eine echte Draw Funktion die in diesem Beispiel der Einfachheit halber nur einen passenden Text ausgeben class Dreieck public Geo Dreieck void Draw printf Dreieck class Viereck public Geo Viereck void Draw printf Viereck Für die Verwaltung der Elemente wird eine Klasse vom Typ GeoList benötigt diese Liste kann Zeiger auf Elemente von Typ Geo aufnehmen und zwar mit der Methode AddTail Nachdem die echten Geometrie Objekte alle auch vom Typ Geo sind schlie lich wurden sie davon abgeleitet können sie auch in dieser Liste verwaltet werden Der folgende Code ist also möglich Dreieck d Viereck v Kreis k GeoList l l AddTail amp d l AddTail amp v l AddTail amp k Es gibt nun die Möglichkeit drei unterschiedliche Objekte in einer gemeinsamen Liste zu verwalten Praktischerweise ist diese Liste eine Liste aus Geo Objekten und diese haben wie bei der Klassendefinition von Geo angegeben eine Draw Methode Iteriert man nun über die Liste so erhält man bei jedem Iterationsschritt einen Zeiger auf ein Geo Objekt Dieser zeigt in Wirklichkeit einmal auf ein Dreieck einmal auf ein Viereck und einmal auf einen Kreis Um alle Elemente obwohl sie von unterschiedlichem Typ sind auszugeben wäre folgender Code möglich Die Iterationsmöglichkeit der Liste muss man sich dazudenken while l AtEnd solange nicht ende der liste Geo p l GetNext nächsten Geo Zeiger aus der Liste holen p gt Draw und Objekt anzeigen Allein diese Möglichkeit macht C viel produktiver als C Der Umstieg lohnt sich

P
Computerwissen komplett aus einer Hand

Dies ist eine Nickles-Premium Seite

Der Inhalt dieser Seite ist nur Nickles Mitgliedern zugänglich. Bitte melden Sie sich mit Ihrem Premium-Account an, um diese Seite lesen zu können.

Sollten Sie bisher noch nicht über einen Account verfügen, so können Sie sich hier einen erstellen und erhalten damit Zugriff auf das gesammelte Computerwissen, alle Artikel, Tipps und vieles mehr. Zusätzlich sehen Premium-Mitglieder Nickles werbefrei.

  • Probleme mit Hard und Software müssen nicht mehr sein
  • Nickles liefert seit über 15 Jahren geballtes Wissen
  • Unverzichtbare Artikel, verständlich für alle
  • Wertvolle Tipps die bares Geld sparen
  • Schluss mit Suchen - alles hier aus einer Hand
  • Zuverlässige Profi-Informationen statt Blabla
  • Hier gibt es Zugriff auf über 2 Millionen Webseiten geballtes Computerwissen zum Schnäppchenpreis
Computerwissen komplett aus einer Hand (Angebot 1)

UNABHÄNGIG, EHRLICH, VERSTÄNDLICH

Drei Worte. Die schreiben wir nicht nur, das meinen wir auch so! Nickles-Artikel liefern konkrete unbestechliche Informationen. Egal ob für PC-Laie oder PC-Profi: auf Nickles-Infos ist Verlass! Bereits ein einziger Nickles-Artikel kann helfen, viel Zeit und Geld zu sparen!

  • Probleme mit Hard und Software müssen nicht mehr sein
  • Nickles liefert seit über 15 Jahren geballtes Wissen
  • Unverzichtbare Artikel, verständlich für alle
  • Schluss mit Suchen - alles hier aus einer Hand
  • Zuverlässige Profi-Informationen statt Blabla
  • Hier gibt es Zugriff auf über 2 Millionen Webseiten geballtes Computerwissen zum Schnäppchenpreis

Allgemeine Geschäftsbedingungen

Wir hassen lange AGB mit fiesem Kleingedrucktem. Drum sind unsere kurz und einfach - bitte sorgfältig durchlesen:
AGB - Allgemeine Geschäftsbedingungen

Bestellformular ausfüllen

Die Abrechnung der 59,95 Euro für 12 Monate erfolgt einfach per Rechnung auf dem Postweg. Dazu benötigen wir die Anschrift. Bitte alle Felder ausfüllen!

Mit * markierte Felder werden für die Bearbeitung der Bestellung benötigt und müssen ausgefüllt werden.
Hinweis: Nickles.de gibt Daten niemals weiter! Sie dienen nur für unsere interne Abwicklung der Mitgliedschaft.

Gesamtpreis: 59,95 Euro für 12 Monate
(inklusive 7 Prozent MwSt, 3,92 Euro auf 56,03 Euro)
Vereinbarungen: Widerrufsrecht: Diese Bestellung kann gemäß AGB innerhalb von zwei Wochen widerrufen werden.

Mindestlaufzeit: 12 Monate

Verlängerung: Wird nicht spätestens drei Monate vor Ablauf der Abrechnungsperiode gekündigt, verlängert sich die Premiummitgliedschaft um 12 Monate zum Preis von 59,95 Euro.
Abrechnungsperiode dann alle 12 Monate.