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