1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
// Kapitel 11 - Programm 10 - ANWGER2.CPP
#include <iostream>
// Eine sehr einfache Klasse
class CForm
{
public:
void ZeigeForm(void);
virtual void Kopf(void) { std::cout << "Das ist eine Kopfzeile\n"; }
virtual void Koerper(void) = 0; // Rein virtuelle Funktion.
virtual void Fusz(void) { std::cout << "Das ist die Fusszeile\n\n"; }
};
void CForm::ZeigeForm(void)
{
Kopf();
for (int Index = 0 ; Index < 3 ; Index++)
{
Koerper();
}
Fusz();
}
// Diese Klasse überschreibt zwei der virtuellen Methoden der Basisklasse
class CMeineForm : public CForm
{
void Koerper(void) { std::cout << "Das ist der neue Text\n"; }
void Fusz(void) { std::cout << "Das ist eine neue Fusszeile\n"; }
};
int main()
{
// Die nächsten drei Code-Zeilen sind jetzt nicht mehr erlaubt, da CForm ein
// abstrakter Datentyp ist und von diesem Typ kein Objekt erzeugt werden kann
//CForm *ErsteForm = new CForm;
// ErsteForm->ZeigeForm(); // Ein Aufruf an die Basisklasse
// delete ErsteForm;
CForm *ErsteForm = new CMeineForm; // Ein Objekt der abgeleiteten Klasse
ErsteForm->ZeigeForm(); // Ein Aufruf an eine abgeileitete Klasse
return 0;
}
// Ergebnis beim Ausführen
//
// Das ist eine Kopfzeile
// Das ist der neue Text
// Das ist der neue Text
// Das ist der neue Text
// Das ist eine neue Fusszeile
|
Copyright © 1997, 1998, 2001-2005 Heinz Tschabitscher - Letzte Änderung 13. September 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Fragen?