Kapitel 6 - Programm 8 - OPUEBER.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
61
62
63
64
65
66
67
68
69
70
71
    // Kapitel 6 - Programm 8 - OPUEBER.CPP
#include <iostream>

class Box
{
    int Laenge;
    int Breite;
    public:
    void Setze(int L, int B) {Laenge = L; Breite = B;}
    int HoleFlaeche(void) {return Laenge * Breite;}
    friend Box operator+(Box A, Box B);  // Addiere zwei Boxen
    friend Box operator+(int A, Box B);  // Addiere eine Konstante zu einer Box
    friend Box operator*(int A, Box B);  // Multipliziere eine Box mit einer Konstanten
};

Box operator+(Box A, Box B) // Addiere die Breite von zwei Boxen
{
    Box Temp;
    Temp.Laenge = A.Laenge;
    Temp.Breite = A.Breite + B.Breite;
    return Temp;
}

Box operator+(int A, Box B) // Addiere eine Konstante zur Breite einer Box
{
    Box Temp;
    Temp.Laenge = B.Laenge;
    Temp.Breite = A + B.Breite;
    return Temp;
}

Box operator*(int A, Box B) // Multipliziere eine Box mit einer Konstanten
{
    Box Temp;
    Temp.Laenge = A * B.Laenge;
    Temp.Breite = A * B.Breite;
    return Temp;
}

int main()
{
    Box Klein, Mittel, Grosz;
    Box Temp;

    Klein.Setze(2, 4);
    Mittel.Setze(5, 6);
    Grosz.Setze(8, 10);

    std::cout << "Der Flaecheninhalt ist " << Klein.HoleFlaeche() << "\n";
    std::cout << "Der Flaecheninhalt ist " << Mittel.HoleFlaeche() << "\n";
    std::cout << "Der Flaecheninhalt ist " << Grosz.HoleFlaeche() << "\n";

    Temp = Klein + Mittel;
    std::cout << "Der neue Flaecheninhalt ist " << Temp.HoleFlaeche() << "\n";
    Temp = 10 + Klein;
    std::cout << "Der neue Flaecheninhalt ist " << Temp.HoleFlaeche() << "\n";
    Temp = 4 * Grosz;
    std::cout << "Der neue Flaecheninhalt ist " << Temp.HoleFlaeche() << "\n";

    return 0;
}


// Ergebnis beim Ausführen
//
// Der Flaecheninhalt ist 8
// Der Flaecheninhalt ist 30
// Der Flaecheninhalt ist 80
// Der neue Flaecheninhalt ist 20
// Der neue Flaecheninhalt ist 28
// Der neue Flaecheninhalt ist 1280

zurück…