klassen automatisch erzeugen
-
hallo
bin anfänger und hoffe jetzt nicht eine sehr zu peinliche Frage zu stellen.
Wenn ich z.B. eine Klasse eintrag habe in der Benutzer verwaltet werden.
Immer wenn ich einen neune datensatz erzeugen will ruf ich die klasse mit x1, x2, x3 auf.class eintrag { .. }; int main(){ eintrag x1; eintrag x2; eintrag x3; ... }wie geh ich vor wenn ich auf einmal 50 datensaetze erzeugen will?
von x1 bis x100?Ich hoffe ihr wisst was ich meine.
danke und lg
michi
-
Wenn du wirklich unterschiedliche Namen haben willst kommst du um das Selbstschreiben nicht herum

Aber da das relativ egal sein sollte nutzt du ein Array:eintrag x[100];Auf die einzelnen Elemente greifst du über den Index zu:
x[0] = ...; // das erste Element cout << x[34]; // das 35. Elementoder was du auch immer machen willst.
Zu beachten ist, dass die Indizes von 0 bis 99 gehen (was 100 Elementen, wie angegeben, entspricht).
Alternativ kannst du auch std::vector<eintrag> nehmen. Dazu solltest du dich aber erst ein wenig mit der STL auseinaendersetzen.Gruss,
DeSoVoDaMu
-
Wäre es nicht sinnvoller das mit Arrays zu lösen? Dann lässt sich später auch besser darauf zugreifen.
Eintrag x[50];//Edit: 6s zu spät

-
Hi.
Ich denke dass ich das Problem welches du beschreibst verstanden habe.
Und direkt(!) auf deine Frage kann ich dir leider keine Antwort geben, und
da ich nicht weisst was du programmieren willst, bin ich mir nicht sicher ob meine Antwort dir bei deinem Problem weiterhilft.Jedoch:
Bist du dir sicher dass du den richtigen Ansatz machst?
Solltest du vielleicht nicht eine Klasse erzeugen, wie z.B.class Kartei { eintrag 1; . . . eintrag x; } int main(){ Kartei Kundenkartei }Das wäre ein Objektorientierter Ansatz, wo du beliebig viele "Datensätze" durch
eine Schleife oder sonstwas IN der Klasse durch eine Funktion oder sonstiges
erzeugen kannst. Oder brauchst du wirklich für jeden "Datensatz" ein eigenes Objekt?[oh, ok, Array, wieder was gelernt :)]
-
hallo
ich würde es so machen:
also eine klasse benutzerclass benutzer { public: benutzer(string name, int alter) : m_name(name), m_alter(alter) {} string getName() { return m_name; } int getAlter() { return m_alter; } private: string m_name; int m_alter; };jetzt noch eine klasse die die benutzer verwaltet
class benutzermanagement { public: benutzermanagement() {} void addBenutzer(string name, int alter) { benutzer newbenutzer(name, alter); m_benutzer.push_back(newbenutzer); } private: list<benutzer> m_benutzer; };und ein kleines beispiel
benutzermanagement user; user.addBenutzer("Gerd", 89); //jetzt kannst du noch in benutzermanagement eine funktion schreiben //die alle personen zwischen 80-90 jahren auflistetich hoffe ich konnte ein wenig helfen
für die liste must du <list> includieren
cu
-
@major
Zur Terminologie:
was du erzeugen willst sind Objekte nicht Klassen. Klassen sind der Bauplan, Objekte die konkrete Ausprägung.ruf ich die klasse mit x1, x2, x3 auf
Du rufst hier keine Klasse. Klassen kann man nicht aufrufen. Klassen sind tot. Aufgerufen werden hier Konstruktoren und die sorgen dafür, dass die glücklichen Objekte x1, x2 und x3 entstehen.