Was ist der Unterschied zwischen virtueller Funktion und Funktionsüberschreibung?
Was ist der Unterschied zwischen virtueller Funktion und Funktionsüberschreibung?

Video: Was ist der Unterschied zwischen virtueller Funktion und Funktionsüberschreibung?

Video: Was ist der Unterschied zwischen virtueller Funktion und Funktionsüberschreibung?
Video: Was ist eine Funktion? - Einfach erklärt 2024, November
Anonim

Virtuelle Funktionen kann nicht statisch sein und auch kein Freund sein Funktion einer anderen Klasse. Sie sind immer in der Basisklasse definiert und überschrieben in der abgeleiteten Klasse. Es ist nicht zwingend erforderlich, dass die abgeleitete Klasse überschreiben (oder neu definieren die virtuelle Funktion ), in diesem Fall Basisklassenversion von Funktion wird genutzt.

Was ist außerdem der Unterschied zwischen virtueller Funktion und rein virtueller Funktion?

Das Wichtigste Unterschied zwischen ' virtuelle Funktion“und „rein virtuelle Funktion“ ' ist dass ' virtuelle Funktion ' hat seine Definition in dem Basisklasse und auch die erbenden abgeleiteten Klassen definieren es neu. Die rein virtuelle Funktion hat keine Definition in dem Basisklasse, und alle erbenden abgeleiteten Klassen müssen sie neu definieren.

Anschließend stellt sich die Frage, was ist das Überschreiben von Funktionen in C++? Überschreiben von C++-Funktionen . Wenn abgeleitete Klasse dasselbe definiert Funktion wie in seiner Basisklasse definiert, ist es bekannt als Funktion überschreiben in C++. Es wird verwendet, um Laufzeitpolymorphismus zu erreichen. Es ermöglicht Ihnen die konkrete Umsetzung der Funktion die bereits von seiner Basisklasse bereitgestellt wird.

Ebenso fragen die Leute, warum verwenden wir virtuelle Funktionen?

Virtuelle Funktionen sind Gebraucht um "Laufzeitpolymorphismus" zu unterstützen. Wenn das virtuelle Funktion über einen Base Class Pointer aufgerufen wird, entscheidet der Compiler zur Laufzeit, welche Version des Funktion d.h. die Version der Basisklasse oder die überschriebene Version der abgeleiteten Klasse soll aufgerufen werden. Dies wird als Laufzeitpolymorphismus bezeichnet.

Können Sie eine nicht virtuelle Funktion in C++ überschreiben?

In c++ sind alle Klassenmitglieder Funktionen sind nicht - virtuell standardmäßig. Sie kann gemacht sein virtuell mit der virtuell Stichwort in der Funktion Unterschrift. Wie oben erwähnt wenn das Funktion der Basisklasse ist gemacht virtuell dann ist die Funktion der abgeleiteten oder untergeordneten Klasse Funktion mit gleichem Namen kann überschreiben die Basisklasse Funktion.

Empfohlen: