10 Unterschied zwischen Funktionsüberladung und Funktionsüberschreibung in C++

Contents

Funktionsüberlastung

Wenn wir mehrere Funktionen mit demselben Namen, aber unterschiedlichen Parametern haben, werden sie als überladen bezeichnet. Diese Technik wird verwendet, um die Lesbarkeit des Programms zu verbessern. Es gibt zwei Möglichkeiten, eine Funktion zu überladen:

  • Mit unterschiedlicher Anzahl von Argumenten
  • Mit verschiedenen Argumenttypen.

Das Überladen von Funktionen wird normalerweise durchgeführt, wenn wir eine einzelne Operation mit unterschiedlicher Anzahl oder Typen von Argumenten ausführen müssen.

Eigenschaften der Funktionsüberladung

  1. Das Überladen von Funktionen ist eine Funktion, die es uns ermöglicht, dieselbe Funktion mehr als einmal in einem Programm zu verwenden. Überladene Funktionen haben denselben Namen, aber ihre Signatur muss unterschiedlich sein.
  2. Das Überladen kann mit oder ohne Klassen erfolgen.
  3. Das Prototyping des Überladens hängt vollständig von der Anzahl der Parameter oder vom gleichen Parameter mit unterschiedlichem Datentyp ab.
  4. Das Überladen wird zur Kompilierzeit durchgeführt.
  5. Das Überladen von Funktionen erfolgt ohne jegliche Vererbung.
  6. Überladen wird verwendet, um den gleichen Namen der Funktionen zu haben, die sich je nach den an sie übergebenen Parametern unterschiedlich verhalten.
  7. Beim Überladen von Funktionen sollte die Funktionssignatur für alle überladenen Funktionen unterschiedlich sein.
  8. Die überladenen Funktionen sind immer im Geltungsbereich.
  9. Das Überladen liefert fast immer passende Ergebnisse, abhängig von den Fähigkeiten des Programmierers und der Echtzeitanwendung.
  10. Überladen wird verwendet, um einen Polymorphismus zur Kompilierzeit zu erreichen.

Was ist Funktionsüberschreibung?

Wenn sowohl die übergeordnete als auch die untergeordnete Klasse eine Memberfunktion mit demselben Namen und derselben Anzahl von Argumenten haben, müssen wir ein Objekt der untergeordneten Klasse erstellen und die sowohl in der untergeordneten als auch in der übergeordneten Klasse vorhandene Memberfunktion mit dem sehr . aufrufen gleichen Namen und eine gleiche Anzahl von Argumenten. Dann wird die Memberfunktion der untergeordneten Klasse aufgerufen und die Memberfunktion der Basisklasse wird ignoriert. Dieses Konzept wird als Funktionsüberschreibung bezeichnet.

Eigenschaften der Funktionsüberschreibung

  1. Das Überschreiben von Funktionen ist eine Funktion, die es uns ermöglicht, dieselbe Funktion in der untergeordneten Klasse zu verwenden, die bereits in der übergeordneten Klasse vorhanden ist.
  2. Das Überschreiben ist nur in Klassen möglich.
  3. Beim Überschreiben sind alle Prototyping-Aspekte konstant.
  4. Das Überschreiben erfolgt zur Laufzeit.
  5. Das Überschreiben von Funktionen findet statt, wenn eine Klasse von der anderen Klasse geerbt wird. Ohne Erbschaft geht es nicht.
  6. Das Überschreiben ist erforderlich, wenn die abgeleitete Klasse Informationen zu derselben Memberfunktion der Basisklasse hinzufügt.
  7. Überschriebene Funktionen müssen denselben Namen und dieselbe Anzahl von Argumenten haben. Mit anderen Worten, Funktionssignaturen müssen gleich sein.
  8. Überschriebene Funktionen haben einen anderen Geltungsbereich bezüglich des Objekts der Klasse.
  9. Das Überschreiben kann, wenn es nicht sorgfältig geübt wird, aufgrund der unterschiedlichen frühen und späten Bindungstechniken zu unerwünschten Ergebnissen führen.
  10. Das Überschreiben wird verwendet, um Laufzeitpolymorphismus zu erreichen.

Lesen Sie auch: Unterschied zwischen Kompilierzeit und Laufzeitpolymorphismus

Unterschied zwischen Funktionsüberladung und Funktionsüberschreibung

VERGLEICHSGRUNDLAGE  FUNKTIONSÜBERLADUNGFUNKTIONSÜBERREITUNG
BeschreibungDas Überladen von Funktionen ist eine Funktion, die es uns ermöglicht, dieselbe Funktion mehr als einmal in einem Programm zu verwenden. Überladene Funktionen haben denselben Namen, aber ihre Signatur muss unterschiedlich sein.  Das Überschreiben von Funktionen ist eine Funktion, die es uns ermöglicht, dieselbe Funktion in der untergeordneten Klasse zu verwenden, die bereits in der übergeordneten Klasse vorhanden ist.  
ImplementierungEs kann mit oder ohne Klassen durchgeführt werden.  Es kann nur in Klassen durchgeführt werden.  
Prototyping-AspekteDas Prototyping des Überladens hängt vollständig von der Anzahl der Parameter oder vom gleichen Parameter mit unterschiedlichem Datentyp ab.  Alle Aspekte des Prototyping sind konstant.  
LeistungEs wird zur Kompilierzeit ausgeführt.  Es wird zur Laufzeit durchgeführt.  
NachlassDas Überladen von Funktionen erfolgt ohne jegliche Vererbung.  Das Überschreiben von Funktionen findet statt, wenn eine Klasse von der anderen Klasse geerbt wird. Ohne Erbschaft geht es nicht.  
VerwendenEs wird verwendet, um den gleichen Namen der Funktionen zu haben, die sich je nach den ihnen übergebenen Parametern unterschiedlich verhalten.  Sie ist erforderlich, wenn die abgeleitete Klasse Informationen zu derselben Memberfunktion der Basisklasse hinzufügt.  
FunktionssignaturBeim Überladen von Funktionen sollte die Funktionssignatur für alle überladenen Funktionen unterschiedlich sein.  Überschriebene Funktionen müssen denselben Namen und dieselbe Anzahl von Argumenten haben. Mit anderen Worten, Funktionssignaturen müssen gleich sein.  
UmfangDie überladenen Funktionen sind immer im Geltungsbereich.  Überschriebene Funktionen haben einen anderen Geltungsbereich bezüglich des Objekts der Klasse.  
Vorteil NachteilDas Überladen liefert fast immer passende Ergebnisse, abhängig von den Fähigkeiten des Programmierers und der Echtzeitanwendung.  Das Überschreiben kann, wenn es nicht sorgfältig geübt wird, aufgrund der unterschiedlichen frühen und späten Bindungstechniken zu unerwünschten Ergebnissen führen.  
ZielEs wird verwendet, um einen Polymorphismus zur Kompilierzeit zu erreichen.  Es wird verwendet, um Laufzeitpolymorphismus zu erreichen.  

osky