Datenbank aus Objekten?



  • Du weißt schon, dass die Datenbank nicht lange Bestand hat, weil am Ende der Routine der Gültigkeitsbereich der Variablen endet?

    void loadKundeInDatabase(const kunde& createdKunde){    /* soll eine objekt der Klasse  datenbank erstellen und
                                                             und dann mit der funktion neuerKunde den Kunden in den Vektor pushen*/
        datenbank database;
        database.neuerKunde(createdKunde);
    } // hier wird "database" wieder zerstört
    


  • kaiuwe schrieb:

    void erstelleKunde(){
        string name, vorname, firmenname;
        int umsatz, kundennr;
        
        cout << "Name des Kunden: ";
        cin >> name;
        
        cout << "Vorname des Kunden: ";
        cin >> vorname;
        
        cout << "Firmenname des Kunden: ";
        cin >> firmenname;
        
        cout << "Umsatz des Kunden: ";
        cin >> umsatz;
        
        cout << "Kundennummer des Kunden: ";
        cin >> kundennr;
        
        kunde erstellterKunde;                              //muss ich ja machen, wenn ich die eingaben übergeben will, oder?
        
        erstellterKunde.setfirmenName(firmenname);
        erstellterKunde.setnachName(name);
        erstellterKunde.setvorName(vorname);
        erstellterKunde.setjahresUmsatz(umsatz);
        erstellterKunde.setkundenNummer(kundennr);
        
        loadKundeInDatabase(erstellterKunde);
    }
    

    Stimmt schon so. Es wäre geschickter einen Konstruktor für "Kunde" zu schreiben, damit du direkt ein gültiges Kundenobjekt erzeugen kannst.

    // variablen cin cout usw. was oben schon steht
    
    Kunde kunde{name, vorname, firmenname, umsatz, kundennummer};
    
    return kunde;
    


  • temi schrieb:

    Du weißt schon, dass die Datenbank nicht lange Bestand hat, weil am Ende der Routine der Gültigkeitsbereich der Variablen endet?

    void loadKundeInDatabase(const kunde& createdKunde){    /* soll eine objekt der Klasse  datenbank erstellen und
                                                             und dann mit der funktion neuerKunde den Kunden in den Vektor pushen*/
        datenbank database;
        database.neuerKunde(createdKunde);
    } // hier wird "database" wieder zerstört
    

    wäre es ratsam die Datenbank direkt im Hauptprogramm du erstellen?

    wie hier:

    #include <iostream>
    #include <fstream>
    #include <string>
    #include "main.hpp"
    #include "classKunde.hpp"
    #include "classDatenbank.hpp"
    #include "infilestream.hpp"
    
    using namespace std;
    
    datenbank database;
    
    void loadKundeInDatabase(const kunde& createdKunde){
    
        database.neuerKunde(createdKunde);
    }
    
    int main() {
    
        return 0;
    }
    


  • kaiuwe schrieb:

    Wäre es ratsam die Datenbank direkt im Hauptprogramm du erstellen?

    Ja.

    Warum nicht so?

    int main()
    {
        Datenbank db;
        db.loadFromFile("db.dat");    
    
        // irgendwelcher Code
    
        db.neuerKunde(erstelleKunde());
    
        // noch mehr Code
    
        db.saveToFile("db.dat");
    } // hier wird "db" ungültig, aber hier endet ja auch das Programm
    

Anmelden zum Antworten