Fahrzeug.cpp


1
#include <iostream>
2
using std::cout;
3
using std::endl;
4
5
/* Du kannst zB Objekte von Typ LKW, Motorrad, Fahrrad und PKW haben, 
6
   die alle von "Fahrzeug" abgeleitet sind. */
7
8
class Fahrzeug {
9
    public: virtual void fahren() = 0; // Abstrakte Basisklasse
10
    };
11
12
class LKW : public Fahrzeug {
13
    public: void fahren() { cout << "Ich bin der LKWuppdich" << endl; };
14
    };
15
16
class Motorrad : public Fahrzeug {
17
    public: void fahren() { cout << "Mim Moped durch die Stadt" << endl; };
18
    };
19
20
class Fahrrad: public Fahrzeug {
21
    public: void fahren() { cout << "I want to ride my bicycle, I want to ride my bike" << endl; };
22
    };
23
24
class PKW : public Fahrzeug {
25
    public: void fahren() { cout << "Fahrn Fahrn Fahrn auf der Autobahn" << endl; };
26
    };
27
28
int main()
29
{
30
    LKW      *lkw1      = new LKW;
31
    Motorrad *motorrad1 = new Motorrad;
32
    Fahrrad  *fahrrad1  = new Fahrrad;
33
    PKW      *pkw1      = new PKW;
34
    
35
    /* Die kannst du dann in ein Array von Fahrzeugen speichern und kannst die 
36
    Methode fahren() aufrufen, falls diese Methode in Fahrzeug definiert ist. */
37
    
38
    Fahrzeug* fahrzeug_array[4] = { lkw1, motorrad1, fahrrad1, pkw1 };
39
    
40
    for (int i=0; i<4; i++)
41
    {
42
        fahrzeug_array[i]->fahren();
43
    }
44
    
45
    return 0;
46
}