RingContainer - zirkuläres Array ausgeben
-
Hi,
ich habe mir einen RinConatiner angelegt(zrkuläres Array) einlesen in den Container klappt anscheinend einwandfrei.... nur wenn ich jetzt etwas ausgeben will klappts nicht.
also
umsatz ist ein Objekt der Klasse deren Daten in dieses Array gespeichert werden sollen:void Konto::addBuchung(Buchung &z) { if (pos <=MAX) { *umsatz[pos]=z; cont_pos(); } else if (pos==(MAX+1)) cont_pos(0); }nun will ich sie wieder ausgeben
print ist eine Methode zum ausgebend der Klasse buchung
void Konto::Kontoauszug() { int i = MAX; for(i;i>=0;i--) { umsatz[i]->print(); // <<<------<<<<-----<<--HIER } }in der markierten Zeile meckert das Programm dann rum ... hat jemand ne Ahnung??
mfG
-
Wie meckert es denn rum? Oder genauer: Wie lautet die Fehlermeldung?
-
das Programm bricht mit einer "unbehandelten Ausnahme" ab wenn er zu dieser Stelle kommt.
-
Müsstest du dafür nicht den []-Operator für die Klasse von "umsatz" überladen?
-
Sehe ich das richtig umsatz ist ein array von maximal MAX pointern auf Buchung?
in deiner methode void Konto::Kontoauszug() gehst du aber davon aus dass immer MAX + 1 ( du gibst zuerst umsatz[MAX] aus ) Buchungen vorliegen.
Kurt
-
ja das stimmt.
Aber wieso gehe ich davon aus das immer MAX+1 vorliegen.
das MAX+1 steht nru bei dem einlesen, dass wenn das Array überlaufen würde man wieder aufn Anfang zurückgeht.aber ich hab da was gelesen das es mit Methoden set u get sowie KopierKonstruktor etc gehn sollte also ähnlich wie bei "Vektoren"
-
AlPhedo schrieb:
Aber wieso gehe ich davon aus das immer MAX+1 vorliegen.
das MAX+1 steht nru bei dem einlesen, dass wenn das Array überlaufen würde man wieder aufn Anfang zurückgeht.In C/C++ wird ein array mit MAX einträgen von 0 .. MAX-1 indiziert.
Kurt
-
achso das meintest du... da stand ich aufm Schlauch