Heim > Artikel > Backend-Entwicklung > Warum hat C keine virtuellen Konstruktoren?
Warum ein virtueller Konstruktor nicht Teil des Toolkits von C ist
Im Gegensatz zu vielen Programmiersprachen integriert C keine virtuellen Konstruktoren in sein Framework . Um die Gründe für diese Entwurfsentscheidung aufzudecken, muss man sich mit den inhärenten Eigenschaften virtueller Aufrufe und Konstruktoren befassen.
Virtuelle Aufrufe ermöglichen Funktionsaufrufe auf der Grundlage bekannter Schnittstellen und nicht auf der Grundlage des spezifischen Objekttyps. Diese Fähigkeit erweist sich für die Orchestrierung polymorphen Verhaltens als unschätzbar wertvoll. Beim Erstellen eines Objekts ist jedoch die genaue Kenntnis seines genauen Typs von größter Bedeutung.
Bjarne Stroustrup, der Architekt von C, bringt dieses Konzept auf den Punkt: „Ein virtueller Anruf ist ein Mechanismus, um Arbeit anhand von Teilinformationen zu erledigen.“ .. Um ein Objekt zu erstellen, benötigen Sie vollständige Informationen ... Folglich kann ein „Aufruf an einen Konstruktor“ nicht virtuell sein schließen die Erzielung ähnlicher Ergebnisse nicht aus. Der oben genannte FAQ-Eintrag schlägt einen praktischen Ansatz vor, um das Verhalten eines virtuellen Konstruktors zu emulieren, ohne auf seine explizite Implementierung zurückzugreifen.
Das obige ist der detaillierte Inhalt vonWarum hat C keine virtuellen Konstruktoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!