Wie kann ich C-Objekte aus Klassennamenzeichenfolgen instanziieren?
Dec 18, 2024 am 12:25 AMObjektinstanziierung aus Klassennamen-Strings
In C ist es ohne explizite Zuordnung nicht möglich, ein Objekt aus einem String zu instanziieren, der den Klassennamen enthält . Diese Einschränkung ergibt sich aus der statischen Natur von C, wo Typen zur Kompilierungszeit bekannt sein müssen.
Option 1: Manuelle Zuordnung mithilfe von Vorlagen
Sie können eine Vorlagenfunktion erstellen für jede Klasse, die Sie instanziieren möchten, und eine Karte, um Klassennamen mit den entsprechenden Vorlagenfunktionen zu verknüpfen. Zum Beispiel:
1 2 3 4 5 |
|
Um ein Objekt zu instanziieren, verwenden Sie:
1 |
|
Option 2: Laufzeittypregistrierung
Sie können Klassen haben Registrieren Sie sich mit einem statischen Mechanismus und rufen Sie dann Instanzen dynamisch ab. Dazu gehört die Verwendung einer Singleton-Map zum Speichern von Klassennamen-Funktions-Zuordnungen. Hier ist ein Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
Diese Methode ermöglicht die automatische Registrierung von Klassen zur Laufzeit.
Option 3: Boost-Variante
Wenn ja Für nicht verwandte Klassen ohne gemeinsame Basisklasse können Sie die Boost-Variantenbibliothek verwenden:
1 2 3 4 |
|
Diese Technik ermöglicht die Instanziierung von verschiedene Typen aus einer einzelnen Zeichenfolge.
Zusammenfassend lässt sich sagen, dass in C ein integrierter Mechanismus für die Objektinstanziierung aus Klassennamenzeichenfolgen fehlt. Mithilfe von Vorlagen, Laufzeitregistrierung oder der Boost-Variantenbibliothek können Sie jedoch eine ähnliche Funktionalität erreichen.
Das obige ist der detaillierte Inhalt vonWie kann ich C-Objekte aus Klassennamenzeichenfolgen instanziieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

GULC: C -Bibliothek von Grund auf neu gebaut

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
