| Reflexionspaket für C ++ (UNIX) Extrahieren von Typ-Deskriptoren von Debug-Informationen |
Jetzt downloaden |
Reflexionspaket für C ++ (UNIX) Ranking & Zusammenfassung
- Name des Herausgebers:
- garret.ru
Reflexionspaket für C ++ (UNIX) Stichworte
Reflexionspaket für C ++ (UNIX) Beschreibung
Bearbeiten durch Reflexion ist ein Mechanismus, der es ermöglicht, sich selbst zu untersuchen. Wenn wir über Programmiersprachen sprechen, wird Reflexion verwendet, um das Format von Objekten zur Laufzeit zu untersuchen, Methoden und Zugriffsfelder dieser Objekte aufzurufen. Reflexion ist erforderlich, wenn Sie einen generischen Code implementieren möchten, der mit Objektobjekten (zum Zeitpunkt der Erstellung dieses Codes) -Typen funktionieren kann. Es gibt mehrere Aufgaben, in denen Reflexion verwendet werden kann: Remote-Methodenaufruf, Serialisierung, Objektdumps, Datenbankschnittstellen. Wie es funktioniert? Angesichts eines Objekts sollten wir zunächst nach seinem Typ fragen. Infolgedessen erhalten wir den Klassenkriptor, der Informationen über Klassenmethoden und Felder liefert. Wir können diese Feldkriptoren verwenden, um Objektfelder abzuholen, und können Methodendeskriptoren verwenden, um Lookups zu suchen und Methoden aufzurufen. Viele Programmiersprachen bieten eingebauter Reflexionsmechanismus. In Java gibt es beispielsweise ein spezielles Paket java.lang.reflect. Aber leider unterstützt C ++ keine Reflexion. Vor allem so langer Zeit wurde der erste Schritt in dieser Richtung gemacht - RTTI-Unterstützung wurde der Sprache hinzugefügt. RTTI bietet jedoch nur sehr eingeschränkte Subset der Reflexion: Ermöglicht das Erlauben des Objekts COMPILE-TIME- und RUNTIME-TIME (es ist möglich, den Objektlaufzeittyp nur zu erhalten, wenn die Objektklasse virtuelle Funktionen enthält). Sie können Typen vergleichen und Sie können einen Typennamen erhalten - und das ist alles, was Sie mit RTTI tun können.
Reflexionspaket für C ++ (UNIX) Zugehörige Software