Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

gibt es irgendeine Möglichkeit, Objekte dynamisch nicht nur per if-Auswahl zu erzeugen, sondern "direkt" per übergebenem String?

also nicht



if (myString == "MyClassOne")

{

	MyClass* pMyClass = new MyClassOne;

}

elseif (myString == "MyClassTwo")

{

	MyClass* pMyClass = new MyClassTwo;

}


...

sondern irgendwie direkt nach dem Motto "erzeuge neues Objekt vom Typ (...)"

Ich möchte mir da auch nicht etwa eine Methode schreiben, denn dann muss ich mir ja doch wieder - in der Methode - die if-Auswahl basteln.

Es handelt sich nämlich nicht nur um zwei oder drei Klassen, sondern um ca. 30 Klassen

:eek:

Da das Programm höchstwahrscheinlich immer wieder um neuen Klassen erweitert wird, ist das ziemlich problematisch.

Weiß jemand Abhilfe?!

Technician

Geschrieben
Originally posted by Technician

gibt es irgendeine Möglichkeit, Objekte dynamisch nicht nur per if-Auswahl zu erzeugen, sondern "direkt" per übergebenem String?

Du könntest das If-Then oder Switch - case in einer sogenannten konfigurierbaren Factory verstecken die als Singleton implementiert wird (siehe dazu E. Gamma , Design Patterns).

Da immer mehr Klassen hinzukommen können, würde ich dies mit so einer Factory lösen, das geht aber nur richtig gut wenn alle Klassen eine bestimmtes Konzept (Schnittstelle implementieren).

In JAVA kann mit Class.forName (oder so)) das Problem relativ einfach lösen. In C++ weiss ich sonst keine andere Möglichkeit momentan. Eventuell solltest du mal unter dem Kapitel

RTTI nachsehen vielleicht findet dich ja da was.

Frank

Geschrieben
Originally posted by fmarx2000

Du könntest das If-Then oder Switch - case in einer sogenannten konfigurierbaren Factory verstecken die als Singleton implementiert wird (siehe dazu E. Gamma , Design Patterns).

Da immer mehr Klassen hinzukommen können, würde ich dies mit so einer Factory lösen, das geht aber nur richtig gut wenn alle Klassen eine bestimmtes Konzept (Schnittstelle implementieren).

... ja, darauf bin ich auch schon gekommen.

Das mit der Schnittstelle wär eigentlich kein Problem, da dies für eine andere Funktionalität des Programms ja auch benötigt wird.

Nur hätte ich ja wieder die Auswahlentscheidung beim Erzeugen der Objekte drin...

Originally posted by fmarx2000

In JAVA kann mit Class.forName (oder so)) das Problem relativ einfach lösen. In C++ weiss ich sonst keine andere Möglichkeit momentan. Eventuell solltest du mal unter dem Kapitel

RTTI nachsehen vielleicht findet dich ja da was.

ich werd mal weiter im Internet stöbern...

Würd mich schon wundern, wenn's das für C++ nicht gäbe...

Danke!

Technician

Geschrieben
Originally posted by Technician

[b

ich werd mal weiter im Internet stöbern...

Würd mich schon wundern, wenn's das für C++ nicht gäbe...

Danke!

Technician

Ich denke mal, dass es das für C++ nicht gibt, deshalb denke ich, wäre die Factory eine gute Lösung, da du das mit dem SWITCH dann zentral an einer Stelle hast was ja eigentlich nicht sooooo schlimm sein dürfte.

Frank

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...