Categories: Allgemein

7 Unterschied zwischen virtueller Funktion und Inline-Funktion in C++

Contents

Was ist eine virtuelle Funktion?

Eine virtuelle Funktion ist eine Memberfunktion innerhalb der Basisklasse, die wir in einer abgeleiteten Klasse neu definieren. Es wird mit dem Schlüsselwort virtual deklariert. Wenn eine Klasse, die eine virtuelle Funktion enthält, geerbt wird, definiert die abgeleitete Klasse die virtuelle Funktion neu, um ihren eigenen Anforderungen gerecht zu werden. Virtuelle Funktionen stellen sicher, dass die richtige Funktion für ein Objekt aufgerufen wird, unabhängig von der Art der Referenz (oder des Zeigers), die für den Funktionsaufruf verwendet wird. Funktionen werden mit einem virtuellen Schlüsselwort in der Basisklasse deklariert. Sie werden hauptsächlich verwendet, um Laufzeitpolymorphismus zu erreichen.

Was Sie über virtuelle Funktionen wissen müssen

  • Die virtuelle Funktion muss im öffentlichen Abschnitt der Klasse deklariert werden.
  • Die virtuelle Funktion kann nicht statisch sein, oder die Freundesfunktion kann auch nicht die virtuelle Funktion einer anderen Klasse sein.  
  • Die virtuelle Funktion wird in der Basisklasse definiert und in der abgeleiteten Klasse überschrieben. Es ist nicht zwingend erforderlich, dass die abgeleitete Klasse überschreibt, in diesem Fall wird die Basisklassenversion der Funktion verwendet.
  • Virtuelle Funktionen verringern die Effizienz des Codes.
  • Die virtuelle Funktion wird hauptsächlich verwendet, um Laufzeitpolymorphismus zu erreichen.
  • Die virtuelle Funktion kann aus einem virtuellen Destruktor bestehen, aber keinen virtuellen Konstruktor haben.
  • Virtual kann für dynamische Verknüpfungen verwendet werden.

Was ist eine Inline-Funktion?

Inline-Funktion ist eine normale Funktion, die durch das Schlüsselwort inline definiert wird, eine kurze Funktion, die vom Compiler erweitert wird und deren Argumente nur einmal ausgewertet werden. Wenn eine Inline-Funktion aufgerufen wird, ersetzt der Compiler alle aufrufenden Anweisungen zur Laufzeit durch die Funktionsdefinition. Jedes Mal, wenn eine Inline-Funktion aufgerufen wird, generiert der Compiler eine Kopie des Codes der Funktion, um den Funktionsaufruf zu vermeiden. Inline-Funktionen sparen den Aufwand für das Pushen und Popping von Variablen auf dem Stack während Funktionsaufrufen.

Was Sie über die Inline-Funktion wissen müssen

  • Inline-Funktion ist eine normale Funktion, die durch das Schlüsselwort inline definiert wird.
  • Die Inline-Funktion kann auch nicht statisch sein.
  • Inline-Funktionen sind die kurzen Funktionen, die automatisch zu Inline-Funktionen gemacht werden, ohne das inline-Schlüsselwort innerhalb der Klasse zu verwenden.
  • Inline-Funktionen werden verwendet, um die Effizienz von Code zu erhöhen.
  • Die Inline-Funktion wird verwendet, um einen Polymorphismus zur Kompilierzeit zu erreichen.
  • Die Inline-Funktion kann auch aus einem Inline-Konstruktor bestehen.
  • Inline-Funktion wird verwendet, um den Funktionsaufruf-Overhead zu reduzieren. 

Unterschied zwischen virtueller Funktion und Inline-Funktion in Tabellenform

VERGLEICHSGRUNDLAGE  VIRTUELLE FUNKTION  INLINE-FUNKTION
BeschreibungDie virtuelle Funktion muss im öffentlichen Abschnitt der Klasse deklariert werden.  Inline-Funktion ist eine normale Funktion, die durch das Schlüsselwort inline definiert wird.  
NaturDie virtuelle Funktion kann nicht statisch sein, oder die Freundesfunktion kann auch nicht die virtuelle Funktion einer anderen Klasse sein.   Die Inline-Funktion kann auch nicht statisch sein.  
DefinitionDie virtuelle Funktion wird in der Basisklasse definiert und in der abgeleiteten Klasse überschrieben. Es ist nicht zwingend erforderlich, dass die abgeleitete Klasse überschreibt, in diesem Fall wird die Basisklassenversion der Funktion verwendet.  Inline-Funktionen sind die kurzen Funktionen, die automatisch zu Inline-Funktionen gemacht werden, ohne das inline-Schlüsselwort innerhalb der Klasse zu verwenden.  
WirkungVirtuelle Funktionen verringern die Effizienz des Codes.  Inline-Funktionen werden verwendet, um die Effizienz von Code zu erhöhen.  
VerwendenDie virtuelle Funktion wird hauptsächlich verwendet, um Laufzeitpolymorphismus zu erreichen.  Die Inline-Funktion wird verwendet, um einen Polymorphismus zur Kompilierzeit zu erreichen.  
Zerstörer & KonstruktorDie virtuelle Funktion kann aus einem virtuellen Destruktor bestehen, aber keinen virtuellen Konstruktor haben.  Die Inline-Funktion kann auch aus einem Inline-Konstruktor bestehen.  
FunktionVirtual kann für dynamische Verknüpfungen verwendet werden.  Inline-Funktion wird verwendet, um den Funktionsaufruf-Overhead zu reduzieren
osky

Recent Posts

Freeway vs. Highway: Ein detaillierter Blick auf die Feinen Unterschiede im Straßenverkehr

Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…

1 Jahr ago

Burrito vs. Enchilada: Die Feinen Unterschiede Zwischen Zwei Klassikern der Mexikanischen Küche

Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…

1 Jahr ago

Ein umfassender Vergleich zwischen Replikation und Transkription

In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…

1 Jahr ago

Verständnis des Unterschieds zwischen Osmose und Diffusion

Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…

1 Jahr ago

Der entscheidende Unterschied zwischen 4G und 5G

Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…

1 Jahr ago

Der entscheidende Unterschied zwischen JPG und PNG

Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…

1 Jahr ago