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!