Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Objekte dynamisch erzeugen

Empfohlene Antworten

Veröffentlicht

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

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

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.