Ein Objekt einer Klasse aufgrund eines Strings erzeugen...
-
Und noch eine Frage :)... ich hoffe ich Frage nicht zu viel :)...
Also ich würde gerne in einer Datei (XML) Elemente angeben die dann als Objekte erzeugt werden :)... also so eine Art Serialisierung...
<button ...> </button> sollte also dazu führen, dass ein Objekt von CButton erzeugt wird...
<picture ...> </picture> sollte dafür sorgen, dass ein Objekt von CPicture erzeugt wird...
Jetzt könnte ich das ganze natürlich über eine switch-case-Anweisung machen... gibt es eventuell eine andere Möglichkeit aufgrund des Elementnamens ein Objekt der Klasse C + Elementnamen zu erzeugen... also Cbutton, da es ein Element <button .../> gibt. So eine Funktion nach CreateObjectFromClass?
Warum frage ich :)... die Sache mit der Case-Anweisung würde dazu führen, dass jedesmal wenn ein neues Element hinzugefügt wird auch diese Anweisung angepasst werden müßte... das würde ich gerne umgehen :)...
Danke für Anregungen/Lösungen/ ...
-
Hallo,
Stichwort: Factory.
-
Ahh das Entwurfsmuster kenn ich... mal suchen wo das war :)...
-
Ach ja... hab jetzt mal wieder alte Unterlagen rausgekrammt und doch etwas gefunden :)... aber in Java gibt es ja einen Typen Namens Class mit dem man Klassen aus Strings erzeugen kann... gibt es soetwas auch in C++?
private Class the_class; public box(Class a_class) { the_class = a_class; } public void insert_new_card() { IClass c; c = (IClass) the_class.newInstance(); box.add(c); }Also soetwas wie the_class.newInstance(); bzw. den Typen Class... gibt es soetwas auch in C++ bzw. ist soetwas möglich?
Danke
-
Kauf dir das Buch "Modernes C++ Design", da stehen solche wichtigen Sachen sehr gut erklärt drin. Das kann man also auch in C++ hinbekommen. Oder du schaust dir die Loki-Library an (kann man kostenlos runter laden), die zu dem Buch dazu gehört.
-
Oder lass dir einfach gesagt sein dass es sowas in C++ nicht gibt.
Natürlich lässt sich das gewünschte Verhalten in C++ hinbekommen, aber nicht SO und nicht so einfach.