C++-Konstruktoren
C++-Konstruktoren
In diesem Tutorial lernen wir den C++-Konstruktor und seinen Typ anhand der Hilfebeispiele kennen.
Ein Konstruktor ist eine besondere Art von Member-Funktion, die automatisch aufgerufen wird, wenn ein Objekt erstellt wird.
In C++ hat ein Konstruktor denselben Namen wie die Klasse und keinen Rückgabetyp. Zum Beispiel
class Wall {
public:
// create a constructor
Wall() {
// code
}
};
Hier die Funktion Wall()
ist ein Konstruktor der Klasse Wall
. Beachten Sie, dass der Konstruktor
- hat denselben Namen wie die Klasse,
- hat keinen Rückgabetyp und
- ist
public
C++-Standardkonstruktor
Ein Konstruktor ohne Parameter wird als Standardkonstruktor bezeichnet . Im obigen Beispiel Wall()
ist ein Standardkonstruktor.
Beispiel 1:C++-Standardkonstruktor
// C++ program to demonstrate the use of default constructor
#include <iostream>
using namespace std;
// declare a class
class Wall {
private:
double length;
public:
// default constructor to initialize variable
Wall() {
length = 5.5;
cout << "Creating a wall." << endl;
cout << "Length = " << length << endl;
}
};
int main() {
Wall wall1;
return 0;
}
Ausgabe
Creating a Wall Length = 5.5
Hier, wenn die wall1 Objekt erstellt wird, das Wall()
Konstruktor aufgerufen wird. Dies legt die Länge fest Variable des Objekts auf 5.5
.
Hinweis: Wenn wir in unserer Klasse keinen Konstruktor definiert haben, erstellt der C++-Compiler automatisch einen Standardkonstruktor mit leerem Code und ohne Parameter.
Parametrisierter C++-Konstruktor
In C++ wird ein Konstruktor mit Parametern als parametrisierter Konstruktor bezeichnet. Dies ist die bevorzugte Methode zum Initialisieren von Mitgliedsdaten.
Beispiel 2:C++ parametrisierter Konstruktor
// C++ program to calculate the area of a wall
#include <iostream>
using namespace std;
// declare a class
class Wall {
private:
double length;
double height;
public:
// parameterized constructor to initialize variables
Wall(double len, double hgt) {
length = len;
height = hgt;
}
double calculateArea() {
return length * height;
}
};
int main() {
// create object and initialize data members
Wall wall1(10.5, 8.6);
Wall wall2(8.5, 6.3);
cout << "Area of Wall 1: " << wall1.calculateArea() << endl;
cout << "Area of Wall 2: " << wall2.calculateArea();
return 0;
}
Ausgabe
Area of Wall 1: 90.3 Area of Wall 2: 53.55
Hier haben wir einen parametrisierten Konstruktor Wall()
erstellt das hat 2 Parameter:double len
und double hgt
. Die in diesen Parametern enthaltenen Werte werden verwendet, um die Mitgliedsvariablen length zu initialisieren und Höhe .
Wenn wir ein Objekt der Wall
erstellen Klasse übergeben wir die Werte für die Mitgliedsvariablen als Argumente. Der Code dafür lautet:
Wall wall1(10.5, 8.6);
Wall wall2(8.5, 6.3);
Mit den so initialisierten Elementvariablen können wir nun die Fläche der Wand mit dem calculateArea()
berechnen Funktion.
C++-Kopierkonstruktor
Der Kopierkonstruktor in C++ wird verwendet, um Daten von einem Objekt in ein anderes zu kopieren.
Beispiel 3:C++-Kopierkonstruktor
#include <iostream>
using namespace std;
// declare a class
class Wall {
private:
double length;
double height;
public:
// initialize variables with parameterized constructor
Wall(double len, double hgt) {
length = len;
height = hgt;
}
// copy constructor with a Wall object as parameter
// copies data of the obj parameter
Wall(Wall &obj) {
length = obj.length;
height = obj.height;
}
double calculateArea() {
return length * height;
}
};
int main() {
// create an object of Wall class
Wall wall1(10.5, 8.6);
// copy contents of wall1 to wall2
Wall wall2 = wall1;
// print areas of wall1 and wall2
cout << "Area of Wall 1: " << wall1.calculateArea() << endl;
cout << "Area of Wall 2: " << wall2.calculateArea();
return 0;
}
Ausgabe
Area of Wall 1: 90.3 Area of Wall 2: 90.3
In diesem Programm haben wir einen Kopierkonstruktor verwendet, um den Inhalt eines Objekts von Wall
zu kopieren Klasse zu einer anderen. Der Code des Kopierkonstruktors lautet:
Wall(Wall &obj) {
length = obj.length;
height = obj.height;
}
Beachten Sie, dass der Parameter dieses Konstruktors die Adresse eines Objekts des Wall
hat Klasse.
Anschließend weisen wir die Werte der Variablen des obj zu Objekt auf die entsprechenden Variablen des Objekts, das den Kopierkonstruktor aufruft. So wird der Inhalt des Objekts kopiert.
In main()
, erstellen wir dann zwei Objekte wall1 und wall2 und kopieren Sie dann den Inhalt von wall1 zu wall2 :
// copy contents of wall1 to wall2
Wall wall2 = wall1;
Hier die wall2 Objekt ruft seinen Kopierkonstruktor auf, indem es die Adresse von wall1 übergibt object als Argument, also &obj = &wall1
.
Hinweis :Ein Konstruktor wird hauptsächlich zum Initialisieren von Objekten verwendet. Sie werden auch verwendet, um einen Standardcode auszuführen, wenn ein Objekt erstellt wird.
C Sprache