Einführung in den Copy Constructor in C ++

Die Programmiersprachen bieten uns verschiedene Funktionen, die für die Entwicklung der Anwendung genutzt werden können. Bei Sprachen der mittleren Ebene sind die Funktionen möglicherweise weniger umfangreich als bei Sprachen der oberen Ebene. Unabhängig von den angebotenen Optionen können jedoch zahlreiche Anwendungen entwickelt werden. In diesem Abschnitt erfahren Sie mehr über Copy Constructors. Der Konstruktor kann als die spezielle Funktion definiert werden, deren Name mit dem Namen der Klasse identisch ist, in der er definiert wurde. Der Konstruktor wird automatisch aufgerufen, wenn das Objekt dieser Klasse initialisiert wird. Man könnte sagen, dass das Objekt initialisiert wird, wenn die Klasse den Konstruktor implizit aufruft. Wenn der Konstruktor überladen ist, müssen die Werte bei der Initialisierung zusammen mit dem Objekt übergeben werden. Hier ist die Art des Konstruktors, den wir lernen werden, sehr einzigartig und als Copy-Konstruktor bekannt. Dieser Konstruktor verwendet andere Objekte als normale Werte.

Wie funktioniert der Copy Constructor in C ++?

Der Kopierkonstruktor kann als der spezielle Konstruktortyp definiert werden, mit dem das Objekt deklariert und mit anderen Objekten initialisiert wird. Der normale Konstruktor, der aufgerufen wird, wenn das Objekt dieser Klasse initialisiert wird. Wenn der Konstruktor mit mehreren Parametern überladen ist, wird durch Initialisieren des Objekts und Übergeben der gleichen Anzahl von Argumenten der Überladungsparameter aufgerufen. Da der Kopierkonstruktor der überladene Konstruktor ist, kann er aufgerufen werden, wenn das Objekt mit dem Argument initialisiert wird und das Argument den Objektwert anstelle eines normalen Werts übergeben muss.

Sobald der vom Parameter des überladenen Konstruktors empfangene Wert ein Objekt gefunden hat, wird der Kopierkonstruktor aufgerufen und die im Kopierkonstruktor definierten Anweisungen werden ausgeführt. Bevor Sie den Kopierkonstruktor verwenden können, müssen Sie ein Objekt derselben Klasse erstellen. Es wird klargestellt, dass jedes Programm, das einen Kopierkonstruktor implementieren soll, auch einen Standardkonstruktor oder einen parametrisierten Konstruktor haben sollte, damit das Objekt erstellt werden kann, das bei der Einbindung des Kopierkonstruktors hilfreich ist.

Im Gesamtszenario kann davon ausgegangen werden, dass ein Objekt genutzt wird, um ein anderes Objekt zu erstellen. Alle Werte, die mit dem Objekt verknüpft sind, das zum Initialisieren des Objekts durch den Kopierkonstruktor verwendet wird, werden dem neu initialisierten Objekt zugewiesen. Das heißt, wenn der Wert einer Variablen vom ersten Objekt verwendet wird, kann dieselbe Variable vom Objekt verwendet werden, das vom Kopierkonstruktor initialisiert wird. Das Merkmal des Kopierkonstruktors wird als sehr wichtig angesehen und macht die Entwicklung für einige Anwendungen sehr bequem. Die Verwendung der Objektreferenz derselben Klasse hilft bei der Entwicklung der Anwendung, die die Anforderungen erfüllt, die nur mit dem Kopierkonstruktor erfüllt werden können. Es wird zwar nicht so oft verwendet wie der Standardkonstruktor oder der parametrisierte Konstruktor, es ist jedoch ausreichend leistungsstark, um der Anwendung neue Funktionen hinzuzufügen.

Beispiel

Lassen Sie uns das Konzept des Kopierkonstruktors anhand des Beispiels verstehen. Hier arbeiten wir an einem einfachen Beispiel, das Ihnen zeigt, wie der Kopierkonstruktor funktioniert und wie er auf die Werte zugreifen kann, die an das Objekt gebunden wurden, mit dem das neue Objekt vom Kopierkonstruktor erstellt wird. Die folgende Abbildung gibt Ihnen eine Vorstellung davon, wie sich der Aufruf des Kopierkonstruktors vom Aufruf des normalen überladenen Konstruktors unterscheidet.

Programm

#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )
#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )

In diesem Programm haben wir den parametrisierten Konstruktor aufgerufen, indem wir das Argument durch a1 umgangen haben. Der übergebene Wert ist eine Ganzzahl, da der parametrisierte Konstruktor so definiert wurde, dass nur Ganzzahlen akzeptiert werden. Wenn der Wert 50 an den Konstruktor übergeben wird, wurde der Wert der Variablen var zugewiesen. Dann wurde das Objekt a1 über a2 an den Kopierkonstruktor übergeben. Sobald die Objektreferenz vom Kopierkonstruktor empfangen wurde, hat sie den mit dem ersten Objekt zugewiesenen Wert mit dem neu gebildeten Objekt verknüpft. Dies ist ein einfaches Beispiel, um das Konzept des Kopierkonstruktors zu erläutern. Es könnte in mehreren anderen Programmen verwendet werden, um verschiedene Funktionen in der Anwendung zu erhalten.

Ausgabe:

60

Regeln und Vorschriften für Copy Constructor in C ++

Der Kopierkonstruktor unterscheidet sich ein wenig vom Standardkonstruktor oder vom parametrisierten Konstruktor. Auf der einen Seite verwendet der normale Konstruktor den Wert eines gemeinsamen Datentyps, auf der anderen Seite verwendet der Kopierkonstruktor das zuvor erstellte Objekt derselben Klasse. Bei der Verwendung des Kopierkonstruktors muss darauf geachtet werden, dass die durch den Kopierkonstruktor übergebenen Parameter zusammen mit einem kaufmännischen Und-Zeichen (&) verwendet werden, da es sich um ein Sonderzeichen handelt, das den Objektverweis enthält. Wenn bei der Implementierung des Kopierkonstruktors kein kaufmännisches Und-Zeichen verwendet wird, handelt es sich nicht mehr um einen Kopierkonstruktor, sondern wird automatisch als parametrisierter Konstruktor betrachtet.

Beim Aufrufen des Kopierkonstruktors müssen wir sicherstellen, dass der als Argumente übergebene Wert die Objektreferenz enthält und keinen Wert, der zu einem allgemeinen Datentyp gehört. Dies sind die wenigen Dinge, die beim Implementieren des Kopierkonstruktors in der Programmiersprache C ++ sehr genau beachtet werden müssen. Außerdem müssen wir jedes Mal, wenn wir den Kopierkonstruktor verwenden, sicherstellen, dass wir ihn ordnungsgemäß vom parametrisierten Konstruktor unterscheiden, da dies die Funktionalität des Programms vollständig verändert und zu einer fehlerhaften Ausgabegenerierung führt.

Fazit

Der Kopierkonstruktor wird als eine spezielle Art von Konstruktor betrachtet, der unter Verwendung der Objektreferenz derselben Klasse arbeitet. Es wird verwendet, um mehrere Funktionen in die Anwendung zu bringen. Im Vergleich zum Standardkonstruktor wird der Kopierkonstruktor in den einfachen Programmen nicht sehr häufig verwendet, aber wenn es um die Entwicklung komplexer Anwendungen geht, die in der Produktionsumgebung implementiert werden müssen, wird der Kopierkonstruktor dort verwendet, und die Anwendungsentwicklung ist recht praktisch .

Empfohlene Artikel

Dies ist eine Anleitung zum Kopieren von Konstruktoren in C ++. Hier wird die Einführung und Funktionsweise von Copy Constructor in C ++ zusammen mit Rules and Regulation für Copy Constructor in C ++ erläutert. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Konstruktor in Java kopieren
  2. Konstruktor in C # kopieren
  3. Konstruktor in C ++
  4. Verwendung des Konstruktors in C
  5. Arten von Konstruktoren in C # mit Code-Implementierung