Warum gibt es in C-Bibliotheken zwei Konstruktorsymbole?
Doppelte Definition von Konstruktorsymbolen in C-Bibliotheken
In C erscheinen Konstruktordefinitionen in Bibliotheken zweimal, wenn sie mit nm untersucht werden. Dies liegt an der Itanium C ABI, die mehrere Konstruktoreinträge für die Polymorphismusunterstützung erfordert.
Die verstümmelten Namen für die Konstruktoren geben ihren Zweck an:
- C1: Vollständiger Objektkonstruktor
- C2: Basisobjektkonstruktor
Auch wenn eine Klasse möglicherweise keine virtuellen Basisklassen hat, GCC gibt beide Konstruktoren aus, da ABI Polymorphismus unterstützt. Dieses Verhalten gilt als bekanntes Problem in GCC, wobei der Compiler dieses Verhalten möglicherweise wegoptimieren könnte, wenn kein Polymorphismus beteiligt ist.
Die verschiedenen Arten von Konstruktoren haben die folgenden Bedeutungen:
- Vollständiger Objektkonstruktor: Konstruiert das gesamte Objekt, einschließlich virtueller Basisklassen.
- Basisobjekt Konstruktor: Erstellt das Objekt selbst und initialisiert Datenelemente und nicht virtuelle Basisklassen.
- Zuweisender Objektkonstruktor: Nicht häufig anzutreffen, führt die Aktionen des vollständigen Objektkonstruktors und zusätzlich aus reserviert Speicher mithilfe des Operators new.
Während diese doppelte Ausgabe von Konstruktorsymbolen normalerweise keine Probleme verursacht, kann sie zu Verwirrung führen beim Untersuchen von Bibliothekssymbolen mit Tools wie nm.
Das obige ist der detaillierte Inhalt vonWarum gibt es in C-Bibliotheken zwei Konstruktorsymbole?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

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

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

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

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

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?

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