Was ist Konstruktorüberladung in C++: Eigenschaften und Typen

Veröffentlicht: 2021-05-24

C++ ist eine in der Industrie häufig verwendete objektorientierte Programmiersprache. C++ ist eine bahnbrechende Programmiersprache in OOP, die 1979 von Bjarne Stroustrup in den AT&T Bell Laboratories entwickelt wurde . Die am häufigsten verwendete Funktion von c++ könnte darin bestehen, eine Klasse darin zu erstellen. Innerhalb einer Klasse können wir Klassenmitglieder erstellen – Methoden und Variablen.

Inhaltsverzeichnis

Einführung

Konstruktoren werden häufig zum Erstellen von Objekten oder technisch gesehen zum Erstellen von Instanzen eines Objekts verwendet. In den meisten objektorientierten Programmiersprachen sind sie außerdem überladen. Wie in vielen Programmiersprachen ist der Name des Konstruktors anhand des Namens der Klasse vorgegeben. Dies schränkt die benannten Objekte ein, da es einen einzelnen Konstruktor geben kann. In einem Szenario, in dem mehrere Konstruktoren erforderlich sind, werden sie mithilfe der Überladungsfunktionen implementiert.

In C++ sind die Standardkonstruktoren ohne Parameter. Sie werden von den Objektmitgliedern mit entsprechenden Standardwerten instanziiert.

Sie können sich eine ungefähre Vorstellung davon machen, wie Konzepte, die in der objektorientierten Programmierung verwendet werden, überladen werden.

Konstrukteur

Ein Konstruktor (ctor) ist eine Programmiertechnik, die zum Erstellen eines Objekts in der klassenbasierten objektorientierten Programmierung verwendet wird. Ein neues Objekt wird durch Aufrufen einer speziellen Unterroutine erzeugt. Sie ist eine Mitgliedsfunktion einer Klasse, die wiederum Objekte einer Klasse initialisiert. Diese Methode akzeptiert Argumente. Die bereitgestellten Parameter werden vom Basiskonstruktor verwendet und Membervariablen festgelegt.

Eigenschaften des Konstruktors

Ein Konstruktor ist eine spezielle Elementfunktion der Klasse. Sie unterscheidet sich aus folgenden Gründen von einer generischen Elementfunktion:

  • Das Konstruktormitglied ist öffentlich
  • Sie hat den gleichen Namen wie die deklarierende Klasse.
  • Beim Namen wird zwischen Groß- und Kleinschreibung unterschieden
  • Konstruktoren haben keinen Rückgabetyp.
  • Der Standardkonstruktor wird implizit erstellt.
  • Beim Erstellen eines Objekts wird der Konstruktor automatisch aufgerufen.
  • Ein Konstruktor wird nicht implizit vererbt.
  • Es hat normalerweise unterschiedliche Regeln für Bereichsmodifikatoren.

Arten von Konstruktoren

Standardkonstruktoren – Der Konstruktor mit Nullparametern und ohne Argumente. Sie sind vom Compiler generierte implizite Konstruktoren.

Parametrisierte Konstruktoren sind diejenigen, durch die Sie Argumente übergeben können. Die Argumente initialisieren ein erstelltes Objekt. Erstellen Sie einen parametrisierten Konstruktor, indem Sie ihm einfach Parameter hinzufügen, ähnlich wie bei jeder anderen Funktion. Verwenden Sie die Parameter im Körper des Konstruktors, um das Objekt zu initialisieren. Diese Art von Konstruktor wird häufig zum Überladen und auch zum Initialisieren verschiedener Datenelemente von Objekten mit unterschiedlichen Anfangswerten verwendet.

Kopierkonstruktor – Es ist eine Memberfunktion, die verwendet wird, um ein Objekt mit einem anderen Objekt derselben Klasse zu initialisieren. Der Compiler erstellt standardmäßig einen Kopierkonstruktor für jede Klasse, gefolgt von einer Member-weisen Kopie zwischen Objekten.

Konstruktor in C++

In C++ wird ein Konstruktor automatisch aufgerufen, wenn ein Objekt (d. h. die Instanz einer Klasse) ihn erstellt.

Wenn wir keinen Konstruktor angeben, generiert der C++-Compiler einen Standardkonstruktor für uns (erwartet keine Parameter und hat den Klassennamen).

Ein richtig geschriebener Konstruktor belässt das resultierende Objekt in einem gültigen Zustand.

Überladen des Konstruktors

Konstruktorüberladung ist ein Phänomen, bei dem ein Konstruktor einen anderen Konstruktor überlädt.

Der angegebene Konstruktor kann ähnlich wie das Überladen von Funktionen überladen werden.

Überladene Konstruktoren haben denselben Namen wie die Klasse. Es variiert jedoch in mehreren Argumenten. Beim Erstellen eines Objekts bestimmt der Typ der übergebenen Argumente, welcher Konstruktor aufgerufen wird.

Die Verfügbarkeit mehrerer Konstruktoren mit unterschiedlichen Parametern hilft bei der Durchführung verschiedener Aufgaben bei der Programmierung.

Konstruktorüberladung in C++

In c++ gibt es mehrere Konstruktoren in einer Klasse mit demselben Namen, aber einer anderen Liste von Argumenten. Dieses Konzept des Konstruktorüberladens in C++ ist dem Überladen von Funktionen ziemlich ähnlich.

Normalerweise sollten Sie mehr als einen Konstruktor in einer Klasse erstellen, um Elementvariablen für Objekte unterschiedlich zu initialisieren. Das Kriterium für ein unterschiedliches Verhalten von Konstruktoren besteht darin, eine unterschiedliche Anzahl von Parametern oder eine unterschiedliche Positionierung oder unterschiedliche Datentypen für Parameter zu haben.

Konstruktoren, die Objekte unter Verwendung einer einzelnen Klasse fest erstellen und eine neue Instanz der Klasse zurückgeben, werden von der Industrie abstrahiert, die Objekte erstellt, aber unterschiedliche Methoden verwenden kann, indem sie unterschiedliche Klassen oder unterschiedliche Zuordnungsschemata, wie z. B. Objektpools, verwendet.

Wie funktioniert das Überladen von Konstruktoren in C++?

Betrachten wir das Beispiel wie unten gezeigt:

Der Code veranschaulicht ein Beispiel für das Überladen von Konstruktoren in c++ .

Es gibt 2 Konstruktoren der Klasse „calculate“:

  1. Ein Standardkonstruktor (ohne Parameter)
  2. Der Konstruktor mit drei Parametern

Und in main() werden zwei Objekte erstellt.

1. aus:

Wenn es erstellt wird, ruft es automatisch den Standardkonstruktor ohne Parameter auf. Dies liegt daran, dass beim Erstellen eines Objekts kein Parameter übergeben wird. Es entspricht also der Definition von first(Default Constructor). Dadurch werden allen drei Variablen für dieses Objekt der Hauptklasse 0-Werte zugewiesen.

2. aus2:

Wenn es erstellt wird, ruft es automatisch den Konstruktor mit 3 Parametern auf. Dies liegt daran, dass beim Erstellen eines Objekts nur 1 Parameter übergeben wird. Es entspricht also der Definition des zweiten Konstruktors. Dadurch werden der Variablen für dieses Objekt der Hauptklasse 3 Werte (als Parameter übergeben) zugewiesen.

Lernen Sie Software-Engineering-Kurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Fazit

Das Verständnis des Programmierkonzepts für das Überladen von Konstruktoren in C++ ist eine wichtige Fähigkeit für Programmierer und Systemdesigner. Studenten im Stream von Computer- und Computer-bezogenen Programmen können ihre Fähigkeiten und technischen Glaubwürdigkeit verbessern, wie z. B. OOP-Konzepte und Code-Optimierung. Die Ressourcen- und Wissensdatenbank des upGrad- Portals ermutigt solche Fachleute, sich das Programmier-Know-how anzueignen, um auf dem Industriemarkt zu konkurrieren. Darüber hinaus erhalten Sie die Möglichkeit, professionelles Networking und die Entwicklung von Fähigkeiten zu erkunden.

Wenn Sie mehr über Full-Stack-Softwareentwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen, mehr als 9 Projekte und mehr bietet Aufgaben, IIIT-B-Alumni-Status, praktische praktische Schlusssteinprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Was sind Konstruktoren in der Programmierung?

Konstruktoren in der Programmierung sind die Funktionen, deren Hauptzweck darin besteht, das Objekt zu initialisieren und andere einfache Aufgaben auszuführen. Konstruktoren werden für die objektorientierte Programmierung verwendet, was ein beliebtes Programmierparadigma ist. Ein objektorientiertes Programm enthält also Objekte, die wiederum Eigenschaften, Methoden und Ereignisse haben. Um ein Objekt zu erstellen, müssen Sie einen Konstruktor verwenden, und um das Objekt verwenden zu können, müssen Sie es instanziieren.

Was ist Konstruktorüberladung?

Konstruktorüberladung bedeutet, dass mehr als ein Konstruktor denselben Namen hat. Konstruktoren sind Methoden, die aufgerufen werden, wenn ein Objekt erstellt wird. Sie müssen für alle Konstruktoren denselben Namen verwenden, der der Klassenname ist. Dies geschieht, indem der Konstruktor mit einer anderen Anzahl von Argumenten deklariert wird. Wenn keine Argumente zu übergeben sind, wird der Standardkonstruktor aufgerufen. Wenn es ein einzelnes Argument gibt, wird ein Konstruktor aufgerufen, der ein einzelnes Argument akzeptiert. Wenn zwei oder mehr Argumente vorhanden sind, wird ein Konstruktor aufgerufen, der genau zwei oder mehr Argumente akzeptiert.

Wie initialisiert man Objekte mit Konstruktoren?

Konstruktoren sind entscheidend, wenn es um die Initialisierung Ihrer Klassen geht. Sie sind ein spezieller Funktionstyp, der zum Erstellen und Initialisieren von Objekten verwendet wird. Manchmal möchten wir nicht alle Felder in der Klasse erstellen, weil sie nicht benötigt werden. Wenn wir alle Felder erstellen, sollten wir alle Felder initialisieren. In diesem Fall verwenden wir den Standardkonstruktor und initialisieren die Felder wie gewünscht. Wenn Sie eine Klasse erstellen, können Sie einen oder mehrere Konstruktoren innerhalb der Klasse erstellen. Wenn Sie also Objekte für diese bestimmte Klasse erstellen, können Sie einfach den Konstruktor dieser Klasse zusammen mit den Argumenten aufrufen, die Sie festlegen möchten. Diese Argumente können als Werte der Felder oder Attribute der Klasse gesetzt werden, deren Konstruktor aufgerufen wird.