Daten aus Klassen lesen und ausgeben
-
hallo, da bin ich mal wieder. Wir schreiben grad ne Prüfung. Da ich die letzten 2 Wochen dank Angina krank im Bett lag darf ich die Prüfung mit Internet schreiben *freu*
Da ich aber keinen blassen hab, wie ich denn genau Daten aus 2 Klassen so lese/eintrage, dass ich sie auch wieder rausholen kann, wollte ich euch mal fragen, wie ich das am besten mache. der lehrer meinte, das geht mit 3-5 zeilen im main.
hier mal der code:
Klasse C_Person:
#include <iostream.h> #include "C_Adresse.cpp" class Person : public Adresse { public: Person() { } Person(AnsiString Name, AnsiString Vorname, AnsiString GebDat, int plz, AnsiString Ort, AnsiString Land) : Adresse(plz, Ort, Land) { this->setKnr(knr); this->setName(Name); this->setVorname(Vorname); this->setGebDat(GebDat); } ~Person() { } void setKnr(int knr) { this->knr = knr; } void setName(AnsiString Name) { this->Name = Name; } void setVorname(AnsiString Vorname) { this->Vorname = Vorname; } void setGebDat(AnsiString GebDat) { this->GebDat = GebDat; } int getKnr() { return this->knr; } AnsiString getName() { return this->Name; } AnsiString getVorname() { return this->Vorname; } AnsiString getGebDat() { return this->GebDat; } AnsiString getInsertPersonSQL(int maxKnr) { AnsiString Sql; maxKnr++; this->setKnr(maxKnr); Sql = "INSERT INTO Person VALUES ("; Sql = Sql + this->getKnr() + ",'" + this->getName() + "','"; Sql = Sql + this->getVorname() + "','" + this->getGebDat() + "'" + ")"; return Sql; } AnsiString getInsertAdresseSQL() { int knr = this->getKnr(); return this->getAdresseInsertSQL(knr); } private: int knr; AnsiString Name; AnsiString Vorname; AnsiString GebDat; };Klasse C_Adresse
#include <iostream.h> class Adresse { public: Adresse() { } Adresse(int plz, AnsiString Ort, AnsiString Land) { this->setPlz(plz); this->setOrt(Ort); this->setLand(Land); } ~Adresse() { } void setKnr(int knr) { this->knr = knr; } void setPlz(int plz) { this->plz = plz; } void setOrt(AnsiString Ort) { this->Ort = Ort; } void setLand(AnsiString Land) { this->Land = Land; } int getKnr() { return this->knr; } int getPlz() { return this->plz; } AnsiString getOrt() { return this->Ort; } AnsiString getLand() { return this->Land; } AnsiString getAdresseInsertSQL(int knr) { AnsiString Sql; Sql = "INSERT INTO Adresse VALUES ("; Sql = Sql + knr + "," + knr + "," + this->getPlz() + ",'"; Sql = Sql + this->getOrt() + "','" + this->getLand() + "'" + ")"; return Sql; } private: int knr; int plz; AnsiString Ort; AnsiString Land; };nun soll ich im main also 1 Datensatz eingeben für die beiden klassen. dazu soll das SQL ausgegeben werden. aber ich stoss hier an meine grenzen, und im unterricht war ich auch ned.
kann mir da evt. jemand helfen? wäre echt saunett von euch.
mfg
-
int main() { Person max("Mustermann","Max","1.1.1970",12345,"Musterstadt","Deutschland"); //jetzt hast du eine Person namens "Max Mustermann", mit der du arbeiten kannst //... }(btw könnte es ein Problem werden, daß du zwei Elemente 'knr' in deiner Klasse hast)
-
ich habs ma so gemacht, sollte doch auch laufen oder?
int main(int argv,char *argc[]) { class Person *psr = new Person("Prüfung","Marco","02-02-1955",6052,"Hergiswil", "Schweiz"); return 0; }nur muss ich nun noch die SQL's ausgeben, aber wie krieg ich beide ausgegeben?
-
per "cout<<psr->getInsertPersonSQL(100);" bzw. "cout<<"psr->getInsertAdresseSQL();" dürfte es gehen (mußt halt den richtigen Wert einsetzen).
PS: zu einem new benötigst du übrigens immer ein delete.