Frage von Emporea97, 21

C++ Variablen und Function während eines Programmes hinzufügen?

Also ich habe folgendes Problem. Ich möchte ein Programm schreiben um Daten wie in einer Datenbank zu speichern, das heißt es gibt zu jedem Eintrag die möglichkeit Namen für Kategorien zu nennen usw. Beispiel.

   Kategorie1 kategorie2 kategorie3

  1. Auto1 Lackierung2 Unterbau4
  2. Auto10 Lackierung5 unterbau8

Usw. Nun habe ich einerseits eine klasse erstellt und für jede Kategorie eine variable und getter und setter funktion. Sowie dann das object das der klasse zugewiesen ist als vector gemacht, sodass jeder eintrag ein eigener vector bzw array eintrag ist. Wie füge ich nun aber neue kategorien während eines programmablaufes ein, also ohne in der klasse selbst eine neue variable zu deklarieren und getter funktion usw., denn ich will ja nicht für jede neue Kategorie das Programm neu conpilieren..

Naja ich hoffe ich habe mich verständlich ausgedrückt.

Danke.

Antwort
von Mikkey, 13

Dann musst Du es im Programm auch ähnlich organisieren wie in einer Datenbank.

Du erstellst einen Kategorie-Baum, in dem die entsprechenden Kategorien einsortiert werden.

Weiterhin ordnest Du jedem Fahrzeug eine Liste von Kategorien zu.

Wenn Du nun eine neue Kategorie speichern willst, erzeugst Du den Eintrag im Kategorie-Baum und einen Eintrag in der Liste des Fahrzeugs. Eine Zusammenstellung aller Kategorien für das Fahrzeug bekommst Du einfach durch Iterieren durch die Liste.

Beim Speichern der Daten mehrerer Fahrzeuge enthalten die Listen-Einträge natürlich einen Schlüssel aus Fahrzeug-Id und Kategorie-Id.

Kommentar von Emporea97 ,

Danke erst mal. Ich muss sagen deine Antwort hört sich klug an, aber so wirklich verstanden habe ich es nicht.

Antwort
von W00dp3ckr, 13

Du fügst Deiner Klasse eine Map hinzu, die Strings Strings zuordnet. So kannst Du dynamisch Attribut-Wert-Paare hinzufügen. Ein Sprachkonstrukt, die während der Laufzeit die Klassen modifiziert gibt es dazu nicht. Für Fälle, in denen es verschiedene Klassen gibt, die Gemeinsamkeiten, aber auch Unterschiede haben, würde ich mir an Deiner Stelle Vererbung, virtuelle Methoden und Polymorphie ansehen.

Keine passende Antwort gefunden?

Fragen Sie die Community