Kapitel 11 - Programm 9 - ANWGER1.CPP

zurück…

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
56
57
58
59
60
    // Kapitel 11 - Programm 9 - ANWGER1.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) { std::cout << " Das ist der Text\n"; }
        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 Kopf(void) { std::cout << "Das ist eine neue Kopfzeile\n"; }
    void Fusz(void) { std::cout << "Das ist eine neue Fusszeile\n"; }
};


int main()
{
    CForm *ErsteForm = new CForm;

    ErsteForm->ZeigeForm();  // Ein Aufruf an die Basisklasse

    delete ErsteForm;
    ErsteForm = new CMeineForm;
    ErsteForm->ZeigeForm();  // Ein Aufruf an eine abgeileitete Klasse

    return 0;
}


// Ergebnis beim Ausführen
//
// Das ist eine Kopfzeile
//  Das ist der Text
//  Das ist der Text
//  Das ist der Text
// Das ist eine Fusszeile
//
// Das ist eine neue Kopfzeile
//  Das ist der Text
//  Das ist der Text
//  Das ist der Text
// Das ist eine neue Fusszeile

zurück…