Variable in KLasse1 definiert in KLasse2 weiternutzen
-
Hallo liebe comm,
ich habe ein problem mit dem ich mich nun schon recht lange beschäftige.
ich habe eine KLasse (ski) die eine Variable fname (Vorname) beinhaltet und dementsprechend auch bearbeitet wird. Nun habe ich eine zweite KLasse erstellt (booking) und brauche diese Variable, besser gesagt deren Wert in Klasse2.
Hintergrund ist der, dass ich eine Benutzerverwaltung habe in der ich Personendaten eingabe (Klasse ski) und eine zweite KLasse mit der ich Kurse Buche. Jetzt muss ich diese beiden so miteinander verknüpfen, dass ich eben zu meinen ausgegebenen Kursdaten auch Benutzerdaten habe.
Ich weiß, dass ist ein sehr häufig besprochenes Problem wie ich beim googlen grad rausfand aber ich werde daraus einfach nicht schlau.Hier mal etwas code:
Klasse1 mit der variablen deklaration:
class ski { private: string lname; string fname;
Die Ausgabe bei der ich den Wert der Variable "fname" ausgeben will (Bereich der 2ten Klasse namens "booking":
//Ausgeben der angelegten Kurse void booking::showc (int i) { cout << cnumber[1] << " "; cout << cday << "." << cmonth << "." << cyear << " "; cout << cprice << "Euro" << " "; // cout << lname << " "; cout << fname << "Vorname: " << " "; // cout << course << " "; cout << endl << endl; }
Die methode mit dem der Vorname vom Nutzer eingegeben wird.
//Methode zur Erfassung des Vornamens mit Zeichenprüfung int ski::vorname() { { cout << "Vorname: "; cin >> fname; int size=fname.length(); for (int i=0;i<size;i++) { if (isalpha(fname[i])) cout << ""; else goto anfang; } cin.get(); return 0; } anfang: cout << "Es sind nur Buchstaben zulaessig!" << endl; vorname(); }
Ich hoffe mir kann wer helfen.
Danke natürlich schonmal jetzt
-
Welche Beziehung besteht denn überhaupt zwischen den Klassen "ski" und "booking"? Und was für einen Grund hat letzteres, auf Werte aus der Klasse ski direkt zugreifen zu müssen?
Im Zweifelsfall benötigst du ein Objekt der Klasse, um auf dessen Member zugreifen zu können (vorausgesetzt, die Sichtbarkeitsregeln lassen es zu).PS: Zu deiner Einlese-Methode sage ich jetzt nichts weiter, die werden andere schon genug zerreißen.
-
CStoll (off) schrieb:
PS: Zu deiner Einlese-Methode sage ich jetzt nichts weiter, die werden andere schon genug zerreißen.
Ich bin sprachlos wenn ich mir das ansehe.
-
Hallo,
mir schon klar in welchem zu stand meine Einlese Methode ist aber das ist nun eben völlig sekundär.
Wie ich bereits schrieb, werden in der Ski Klasse die Benutzer (Kunden) angelegt und din der Bookin Kurse gebuch (Skikurse).
Ich brauche die Werte aus der Ersten klasse um sie mit der 2ten zu verschmelzen. Ich möchte demnach hinter den Kursen nuter zuweisen sodass deren Name der ja schon eingegeben ist mit angezeigt werden kann. Mehr nicht.
Vielen Dank für die freundliche antwort
-
Daimondback schrieb:
Wie ich bereits schrieb, werden in der Ski Klasse die Benutzer (Kunden) angelegt und din der Bookin Kurse gebuch (Skikurse).
Dann hat die booking-Klasse vermutlich einen vector<ski> als Element und wäre theoretisch in der Lage, auf dessen Elemente zuzugreifen.
Praktisch kommt da noch die Sichtbarkeit dazu - fname (btw ein sehr aussagekräftiger Bezeichner) ist privat, d.h. den dürfen nur Methoden der Klasse selber verwenden (und Freunde). Das heißt, du solltest eine Methode anbieten, die den Namen nach außen (an einen Verwender der Klasse wie dein booking) liefern kann.@EOP: Weswegen? Meine Antwort oder die Methode selber
-
CStoll (off) schrieb:
@EOP: Weswegen? Meine Antwort oder die Methode selber
Die Methode selber natürlich.
Da ist ja wohl so ziemlich alles Quatsch:
goto, Rekursion, Rückgabewert(e)