*Bankkonto*: Verweis auf ein Objekt anderer Klasse richtig übergeben? Keine Ausgabe!



  • @Th69 ja, aber die Funktionen rufe ich in der menu() -Funktion auf und übergebe die Werte dann an das Objekt der Klasse



  • Nur warum machst du das?
    Du rufst doch in der main-Funktion diese Funktion so ähnlich auf:

    Bank bank;
    
    bank.menu();
    

    Und jetzt schreibe darunter mal:

    bank.print_account();
    

    und führe es aus (indem du mal mindestens einen Account anlegst und dann das Menü verlässt).

    Warum also nicht (wie in den anderen Bank-Funktionen auch) einfach

    // in Zeile 38 deines ersten Code-Beitrags
    this->print_person();
    // bzw. kürzer
    print_person();
    

    ?



  • Im Grunde sind der größte Fluch des C++-Forums irgendwie Professoren und Lehrer 😂
    Keiner von denen hat vermutlich jemals ein Software-Projekt durchgezogen...



  • Und verwenden Skripte aus den 90iger Jahren...



  • @It0101 sagte in *Bankkonto*: Verweis auf ein Objekt anderer Klasse richtig übergeben? Keine Ausgabe!:

    Im Grunde sind der größte Fluch des C++-Forums irgendwie Professoren und Lehrer

    Oder die Existenzberechtigung 😉



  • @Th69 sagte in *Bankkonto*: Verweis auf ein Objekt anderer Klasse richtig übergeben? Keine Ausgabe!:

    Nur warum machst du das?
    Du rufst doch in der main-Funktion diese Funktion so ähnlich auf:

    Bank bank;
    
    bank.menu();
    

    Und jetzt schreibe darunter mal:

    bank.print_account();
    

    und führe es aus (indem du mal mindestens einen Account anlegst und dann das Menü verlässt).

    Warum also nicht (wie in den anderen Bank-Funktionen auch) einfach

    // in Zeile 38 deines ersten Code-Beitrags
    this->print_person();
    // bzw. kürzer
    print_person();
    

    ?

    Meine mainsieht folgendermaßen aus:

    int main() {
    
        Bank b1;
        b1.menu();
    
        return 0;
    }
    
    

    Ich kann dir jetzt nicht mehr ganz folgen. Dass ich ein Bank-Objekt in der Klasse Bank erzeuge und es besser geht verstehe ich von der Logik her, aber ich komme nicht ganz mit, wie du das besser umschreiben würdest.
    Von der Logik her dachte ich, dass ich in der Klasse Bank die Methode menu() aufrufe und in dieser Methode ein Objekt der Klasse Bank erzeuge, um sämtliche Eingaben, die der Benutzer macht, im Objekt speichern zu können?

    @It0101 @manni66 Sonderlich gut erklären können die Profs auch nicht wirklich. Und ich bemühe mich das zu lernen



  • Du hast doch schon das Bank-Objekt b1. Für dieses Objekt führst du die menu-Funktion aus und möchtest doch auch sicherlich alle Daten in diesem Objekt speichern und nicht in einem anderen.
    Du gehst doch auch nicht in die Sparkassen-Filiale und möchtest dort ein Konto der Volksbank erzeugen?!

    Also so:

    switch (eingabe) {
    
        case 1: {
            print_person();
            break;
            }
    
        case 2: {
            print_account();
            break;
            }
    
            // ...
    }
    


  • void Bank::menu() {
    
        bool end = false;
        Bank bank1;
    
        do {
            Person *p1;
            int eingabe;
    
            cout << "1. Alle Kundendaten anzeigen" << endl;
            cout << "2. Alle Konten anzeigen" << endl;
            cout << "3. Neuen Kunden anlegen (ohne Konto)" << endl;
            cout << "4. Neues Konto anlegen (Kunde muss existieren)" << endl;
            cout << "5. Neue Buchung" << endl;
            cout << "6. Kontoauszug fuer Konto ziehen" << endl;
            cout << "7. Ein Konto aufloesen" << endl;
            cout << "8. Testdaten einfuegen" << endl;
            cout << "9. Zum beenden q eingeben" << endl;
            cout << endl;
            cin >> eingabe;
    
            switch (eingabe) {
    
                case 1: {
    
                    bank1.print_person();
                    break;
                }
    
                case 2: {
                    bank1.print_account();
                    break;
                }
    
                case 3: {
    
                    string vorname;
                    string nachname;
                    int tag;
                    int monat;
                    int jahr;
    
                    cout << "Vorname: ";
                    cin >> vorname;
                    cout << "\n";
                    cout << "Nachname: ";
                    cin >> nachname;
                    cout << "\n";
                    cout << "Tag: ";
                    cin >> tag;
                    cout << "\n";
                    cout << "Monat: ";
                    cin >> monat;
                    cout << "\n";
                    cout << "Jahr: ";
                    cin >> jahr;
    
                    bank1.createUser(vorname, nachname, tag, monat, jahr);
                    cout << endl;
                    break;
                }
                case 4: {
                    string nachname;
    
                    cout << "Geben Sie einen Nachnamen an: ";
                    cin >> nachname;
                    bank1.createAccount(nachname);
                    break;
                }
    
                case 5: {
    
                    int kontonr;
    
                    cout << "Geben Sie ihre Kontonr. fuer die Buchung an: ";
                    cin >> kontonr;
    
                    bank1.createBuchung(kontonr);
                    break;
                }
    
                case 6: {
    
                    int kontonr;
    
                    cout << "Kontonr.: ";
                    cin >> kontonr;
    
                    bank1.kontoauszug(kontonr);
                }
            }
        } while (!end);
    

    Also könnte ich theoretisch auf mein Bank Objekt bank1 verzichten?



  • Ja, exakt.



  • Ich mach mich mal ran und änder das ab und versuche jetzt weiter voran zu kommen. Danke für die Antworten!


Anmelden zum Antworten