Zum Inhalt springen

Objekte dynamisch erzeugen


Technician

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...