Seite 1 von 1

C++: Fehler? Falsche Werte werden ausgegeben

BeitragVerfasst: Mi 8. Mär 2017, 14:25
von maximi
Hallo,
ich lerne momentan C++ und habe ein Testprojekt gemacht.
Leider sind die Ausgaben der Attributwerte nicht ganz korrekt, und ich weiß nicht wie das zu Stande kommt.

Ich bekomme folgende Ausgaben:
Blätter: 250 stk.
Höhe: 65635 mm
Dicke: 14 mm
Blätter: 200 stk.

Doch normalerweise (korrekterweise), sollten die Ausgaben wie folgt aussehen:
Blätter: 250 stk.
Höhe: 100 mm
Dicke: 10 mm
Blätter: 150 stk.

Wo liegt der Fehler?

Hier der gesamte Quelltext:


#include <iostream>

using namespace std;

class baum
{
int hoehe;
int durchmesserStamm;
int blaetterAnzahl;

public:
void blaetterFallen(int);
void blaetterErzeugen(int);
void groesserWerden(int);
void dickerWerden(int);
void init();
};

void baum::init()
{
hoehe = 0;
durchmesserStamm = 0;
blaetterAnzahl = 0;
}

void baum::blaetterFallen(int anzahl)
{
if ((blaetterAnzahl - anzahl) <= 0)
blaetterAnzahl = 0;
else
{
blaetterAnzahl = blaetterAnzahl - anzahl;
cout << "Anzahl der Blätter: " <<anzahl << endl;
}
}

void baum::blaetterErzeugen(int anzahl)
{
blaetterAnzahl = blaetterAnzahl + anzahl;
cout << "Anzahl der Blätter: " << anzahl << endl;
}

void baum::groesserWerden(int mm)
{
hoehe = (hoehe + mm);
cout << "Hoehe des Baumes: " << hoehe << " mm.\n";
}

void baum::dickerWerden(int mm)
{
durchmesserStamm = durchmesserStamm + mm;
cout << "Der Stamm ist " << durchmesserStamm << " mm dick." << endl;
}



int main()
{
baum eiche1;
eiche1.blaetterErzeugen(250);
eiche1.groesserWerden(100);
eiche1.dickerWerden(10);
eiche1.blaetterFallen(100);
}



danke und schöne Grüße

Re: C++: Fehler? Falsche Werte werden ausgegeben

BeitragVerfasst: Mi 8. Mär 2017, 15:14
von maximi
Hallo,
habe den/die Fehler gefunden.
Der Funktionsaufruf in main() für die Initialisierung wurde vergessen.
Und in der Methode blaetterFallen() wurde "anzahl" statt "blaetterAnzahl" angegeben.

danke und Gruß