Werte zweier Instanzen der selben Klasse in Abhängigkeit voneinander formatieren
-
Hallo,
Wir haben zwei Instanzen von Klasse (Die wichtigste Eigenschaft dieser ist der Kontostand, Die wichtigste Methode ist kontostandAuslesen), nennen wir die Klasse einfach mal Konto , kontoA und kontoB. Nehmen wir an, wir schreiben ein kleines Kontoverwaltungsprogramm: wir haben zum einen das Konto A (kontoA)und zum anderen das Konto B (kontoB).Wir besitzen 10 Euro auf Konto A und 15€ auf Konto B unser Ziel ist es jetzt, von Konto B 5€ auf Konto A zu übertragen. Ich dachte mir das so:
----
Konto A:Menu ,dass die Eingabe des Benutzers fordert.
Wenn die Eingabe zum Beispiel 3 ist wird das KontoB aufgerufen(als Funktion).
So jetzt sind wir in KontoB und haben wieder ein Menü,wenn die Eingabe z.B. 5 ist, also der Benutzer Geld auf Konto A überweisen will passiert folgendes:cout<<"Wie viel Geld soll überwiesen werden? "<<endl; cin>>uberweisung; ktoA.kontostand = ktoA.kontostand + uberweisung; cout <<"Neuer Kontostand von A: "<<ktoA.standAuslesen ()<<endl;Das Problem ist, die Funktion, welche KontoB aufruft kennt ktoA nicht.Natürlich, würde ich in dieser Funktion ktoA instanzieren wäre die Sache gegessen (naja das Programm würde laufen, aber nicht so wie gewünscht) aber ich habe einen Konstruktor angelegt:
Konto::Konto () { kontostand = 0; };Und da liegt das Problem. Instanziere ich ktoA in der Funktion, in der KontoB aufgerufen wird, wer kontostand automatisch auf 0 gesetzt, und die 10€ von KontoA verschwinden.
ICh hoffe ihr könnt mein Problem nachvollziehen: (Wie kann ich den Wert des Kontostandes von ktoA global beibehalten)
-
Der Aufbau deiner Klassen ist imho nicht gut durchdacht.
Ich programmier zwar sogut wie nie mit OOP aber mein vorschlag wäre das hier:class Bankclass Kontojetzt machst in der klasse bank ne liste mit allen kontos. Die Überweisungsfunktion machst ebenfalls in die Bank klasse. Jetzt kannst in der bank klasse auf beide konto instanzen zugreifen.
mfg tobZel
-
Wie "eine Liste der Konten in der Klasse BAnk anlegen" ich kenns nur so dass man die KLassen direkt in der Funktion instanziert.
-
SpreeNotLoggedIn schrieb:
Wie "eine Liste der Konten in der Klasse BAnk anlegen" ich kenns nur so dass man die KLassen direkt in der Funktion instanziert.
Dann solltest du dich noch ein wenig mehr in die Materie einarbeiten..
-
SpreeNotLoggedIn schrieb:
Wie "eine Liste der Konten in der Klasse BAnk anlegen" ich kenns nur so dass man die KLassen direkt in der Funktion instanziert.
1. Beherrzige drakons Kommentar
2. std::vector wäre ein mögliches Stichwort...
class Konto {}; class Bank { private: std::vector<Konto> kontoListe; public: Bank& operator+=(Konto const & konto) { kontoListe.push_pack(konto); return *this; } // ... usw };