„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann C ++ Type Löschen erzielen: Ein Vergleich von Techniken?

Wie kann C ++ Type Löschen erzielen: Ein Vergleich von Techniken?

Gepostet am 2025-02-07
Durchsuche:399

How Can C   Achieve Type Erasure: A Comparison of Techniques?

type Löschetechniken in c

tippen Sie das Löschen in C auf die Technik, einige oder alle Typinformationen zu einer Klasse zu verbergen, ähnlich wie Boost.any. Hier sind verschiedene Typ-Löschen-Ansätze:

virtuelle Funktionen

virtuelle Funktionen sind eine klassische Technik, bei der Sie die Implementierung einer Klasse in einer interface-basierten Klassenhierarchie abstrahieren. Dieser Ansatz wird von vielen Boost -Bibliotheken wie Boost.any und Boost.shared_ptr übernommen, um Typen oder Handelsmechanismen zu verbergen. mit Vorlagenfunktionen, während das tatsächliche Objekt in einem void* Zeiger speichert. Boost.function verwendet diese Technik, um den tatsächlichen Typ eines Functors zu verbergen. Ohne auf virtuelle Funktionen oder void* Manipulation zurückzugreifen. Es nutzt Funktionsvorlagen im Shared_Ptr -Konstruktor, um Daten zu speichern und am Ende den richtigen Destruktor aufzurufen. Trotz seiner Einfachheit bietet dieser Ansatz Bequemlichkeit, indem er das traditionelle Leerraum*/Funktions-Eingabetyp zum Löschkonzept des Typs verpackt. , mit dem Hauptunterschied in der Bereitstellung von semantischem Zucker.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3