Heim  >  Artikel  >  Backend-Entwicklung  >  Warum hat C keine virtuellen Konstruktoren?

Warum hat C keine virtuellen Konstruktoren?

DDD
DDDOriginal
2024-11-22 09:58:10720Durchsuche

Why Doesn't C   Have Virtual Constructors?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn