Kopieren Sie das Konstruktor -Array in C ++

Kopieren Sie das Konstruktor -Array in C ++
Kopierkonstruktoren sind Konstruktoren, die verwendet werden, um das aktuelle Objekt einer bestimmten Klasse zu duplizieren. Es befindet sich im Allgemeinen im Format Z (Z &), wobei z der Klassenname ist. Alle Klassen haben einen vom Compiler angegebenen Standardkopiekonstruktor. Der Kopierkonstruktor ist mit dem Standardkonstruktor identisch, mit der Ausnahme, dass das Argument ein weiteres Array -Element sein würde, und das kürzlich erstellte Array wurde an die Dimensionen des Datentyps des Parameters angepasst und auf den Array -Inhalt des Parameters deklariert. Durch die Verwendung verschiedener Beispiele werden wir den Kopierkonstruktor und seine Kategorien in diesem Artikel diskutieren.

Verwenden des Kopierkonstruktors

In C ++ wird der Kopierkonstruktor verwendet, um den Inhalt von einem Objekt zum anderen zu duplizieren. Sehen wir uns nun ein Beispiel an, um zu demonstrieren, wie der Deep Copy Constructor verwendet wird.

Zunächst haben wir die Header -Datei für Eingabe- und Ausgabefunktionalitäten integriert. Danach haben wir den Standard -Namespace verwendet. Jetzt werden wir einen Klassenzimmer deklarieren. Wir haben die Länge und Breite des Raums initialisiert und privat festgelegt. Der Datentyp von Länge und Breite ist hier "doppelt".

Jetzt haben wir die "Länge" und "Breite" der Variablen mithilfe des parametrisierten Konstruktors deklariert. Hier haben wir diese Parameter an den "Raum" -Konstruktor übergeben, und dies ist öffentlich zu sein. Darüber hinaus haben wir einen Kopierkonstruktor verwendet. Wir kopieren den Inhalt des Arguments "OBJ". Die Funktion calculateArea () wird aufgerufen, um die Fläche des Raums zu ermitteln, indem der Wert der Länge mit dem Wert der Höhe multipliziert wird.

Im nachfolgenden Schritt haben wir die main () -Funktion deklariert. Hier haben wir ein Objekt der "Raum" -Klasse erstellt und auch die Werte seiner Länge und Breite spezifiziert. Jetzt müssen Sie nur die Daten von 'Room1' in 'Room2' kopieren. Danach haben wir "Cout" verwendet, um die Bereiche beider Räume anzuzeigen. Am Ende wird der Return0 verwendet, um das Programm zu beenden.

Verwenden Sie den Konstruktor der flachen Kopie

Wenn eine Klasse nicht dynamisch mit der Speicherzuweisung interagiert, wird der flache Kopierkonstruktor verwendet. Zwei Objekte im flachen Kopierkonstruktor beziehen sich auf eine ähnliche Speicheradresse. Verweise auf tatsächliche Elemente werden in einer flachen Kopie repliziert. Ein Standardkopiekonstruktor wird vom Compiler angegeben. Es ist eine Bit-für-Bit-Replik von einer Sache. Im Folgenden wird eine Instanz verwendet, um den Begriff eines flachen Kopierkonstruktors zu veranschaulichen.

Zu Beginn des Programms haben wir zwei erforderliche Bibliotheken eingeführt und . Darüber hinaus haben wir auch einen Standard -Namespace verwendet. Jetzt haben wir eine Klasse namens "Computer" erstellt. Wir haben einen Zeiger der Klasse konstruiert und ihren Datentyp "Zeichen" festgelegt.

Wir haben die Funktion der Klasse "Computer" öffentlich deklariert und hier haben wir den definierten Konstruktor als Parameter für diese Funktion übergeben. Wir haben hier eine dynamische Speicherzuweisung erstellt und gleich der Variablen des Zeigers festgelegt. Es ermöglicht dem Benutzer, einen Speicher für ein Attribut oder sogar ein Array im Programm zu erstellen.

Darüber hinaus haben wir die void Concatenate () -Funktion angewendet. Um zwei Saiten zu verkettet, verwendeten wir die StrCat () -Methode. Jetzt haben wir einen Kopierkonstruktor des Klassencomputers deklariert. Um die Ausgabe anzuzeigen, haben wir die void display () -Funktion zusammen mit der Anweisung "Cout" verwendet. Jetzt ist es Zeit, die Main () -Funktion aufzurufen. Wir haben den Kopierkonstruktor im Körper der Main () -Funktion verwendet. Es wird als Konstruktor bezeichnet, weil es verwendet wird, um ein Objekt zu erzeugen.

Der Kopierkonstruktor, wie der Name schon sagt, generiert also ein neues Objekt, das eine identische Nachbildung der Originalkopie ist. Wir haben zwei Objekte erstellt und die Werte dieser Objekte angegeben. Anschließend haben wir die Funktion display () einzeln auf diese Objekte angewendet, um das Ergebnis zu erhalten.

Im nächsten Schritt ist A1 verlockend, zu verkettet, daher haben wir das 'A1 angewendet.concattenate () 'Funktion. Hier setzen wir auch eine Wertstechnologie für die Verkettung. Wir haben erneut die Anzeige () -Methode verwendet, um die Ausgabe zu erhalten. Jetzt beenden wir das Programm mit 'return 0'.

Verwenden Sie den Deep Copy Constructor

Tiefe Kopie erfordert einen eindeutigen Speicherplatz für doppelte Daten. Infolgedessen sind das Original und die Kopie unterschiedlich. In einem Speicherbereich implementierte Änderungen haben keinen Einfluss auf die Replik. Wir würden einen benutzerdefinierten Kopierkonstruktor verwenden, während wir dynamischem Speicher mit Zeigern erstellen würden. Beide Entitäten würden sich auf getrennte Standorte im Speicher beziehen.

Darüber hinaus verwenden wir den Standard -Namespace. Wir werden jetzt eine Klasse namens "ProgrammingLanguage" erstellen.'Wir haben einen Klassenzeiger erstellt und seinen Datentyp zum Charakter definiert.'Dann haben wir die Funktion der Klasse' ProgrammingLanguage 'als öffentlich definiert und den angegebenen Konstruktor als Argument zur Verfügung gestellt.

Hier haben wir eine dynamische Speicherzuweisung erstellt und sie der Zeigervariablen entspricht. Es ermöglicht uns, Speicher für einen Datensatz oder ein Array im Programm zu erwerben. Die Funktion wird hier aufgerufen, und der Konstruktor der Programmingklanguage -Klasse wird als Parameter angegeben. Wir haben die Void Concatenate () -Methode verwendet.

Darüber hinaus werden wir die Strcat () -Technik einsetzen, um zwei Saiten zusammenzuschließen. Jetzt haben wir einen Kopierkonstruktor der Klasse 'ProgrammingLanguage' erstellt. Die Daten werden mit der Void Display () -Methode und dem Befehl "Cout" angezeigt. Die Funktion main () wird nun aufgerufen. Im Körper der Main () -Funktion haben wir den Kopierkonstruktor verwendet. Dies dupliziert ein vordefiniertes Objekt. Daher würden wir das tatsächliche Objekt normalerweise nicht ändern wollen. Wir erstellen zwei Objekte und weisen das Objekt 'a1' den Wert 'Python zu.'Das Objekt' A2 'ist dem Objekt' A1 'in der nächsten Phase gleich.

Um die Ausgabe zu erhalten, haben wir die Methode display () für jeden dieser Objekte einzeln verwendet. Jetzt haben wir den Befehl 'return 0' verwendet, um das Programm zu beenden.

Abschluss

In diesem Artikel haben wir die Arbeit eines Kopierkonstruktors in C ++ - Sprache geklärt. Wenn ein Objekt hergestellt wird, ist ein Konstruktor eine bestimmte Form einer abgeleiteten Klasse, die sofort deklariert wird. Kopierkonstruktoren sind die Konstruktoren, die verwendet werden, um ein Element einer angegebenen Klasse zu replizieren, die bereits vorhanden ist. Wir haben auch beobachtet, wie man flachen Kopierkonstruktor und Deep Copy Constructor mithilfe verschiedener Instanzen verwendet.