Heim > Backend-Entwicklung > C++ > Warum wird „= 0' verwendet, um rein virtuelle Funktionen in C zu deklarieren?

Warum wird „= 0' verwendet, um rein virtuelle Funktionen in C zu deklarieren?

DDD
Freigeben: 2024-12-17 20:57:10
Original
635 Leute haben es durchsucht

Why is `= 0` Used to Declare Pure Virtual Functions in C  ?

Warum wird eine rein virtuelle Funktion mit 0 initialisiert?

Rein virtuelle Funktionen sind ein wesentlicher Bestandteil des objektorientierten Programmiermodells von C. Sie ermöglichen es Klassen, Methoden zu definieren, die von abgeleiteten Klassen überschrieben werden müssen, wodurch abgeleitete Klassen effektiv gezwungen werden, Implementierungen für diese Methoden bereitzustellen.

Bei der Deklaration einer rein virtuellen Funktion ist es üblich, sie mit 0 zu initialisieren. Dies ist der Fall führte viele zu der Annahme, dass diese Initialisierung notwendig sei, um den virtuellen Tabelleneintrag für die Funktion auf NULL zu setzen. Dieses Verständnis ist jedoch falsch.

Das =0 am Ende einer rein virtuellen Funktionsdeklaration ist keine Initialisierung. Stattdessen ist es ein Syntaxindikator dafür, dass diese Funktion rein virtuell ist. Dies ist eine Folge der Einschränkungen während des Designprozesses der Sprache, wie Bjarne Stroustrup in seinem Buch „The Design & Evolution of C“ erläutert.

Die Implementierung rein virtueller Funktionen erfordert nicht unbedingt die Festlegung des virtuellen Tabelleneintrags auf NULL. Tatsächlich stellt Stroustrup ausdrücklich fest, dass dieser Ansatz nicht der beste Weg ist, rein virtuelle Funktionen zu implementieren.

Warum wird also 0 für rein virtuelle Funktionen verwendet? Die Antwort liegt eher im Sprachdesign als in technischen Implementierungsanforderungen.

Das obige ist der detaillierte Inhalt vonWarum wird „= 0' verwendet, um rein virtuelle Funktionen in C zu deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage