In diesem Tutorial lernen wir den C ++ - Konstruktor und seinen Typ anhand der Hilfebeispiele kennen.
Ein Konstruktor ist eine spezielle Art von Elementfunktion, die beim Erstellen eines Objekts automatisch aufgerufen wird.
In C ++ hat ein Konstruktor denselben Namen wie der der Klasse und keinen Rückgabetyp. Beispielsweise,
class Wall ( public: // create a constructor Wall() ( // code ) );
Hier ist die Funktion Wall()
ein Konstruktor der Klasse Wall
. Beachten Sie, dass der Konstruktor
- hat den gleichen 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()
handelt es sich um einen Standardkonstruktor.
Beispiel 1: C ++ - Standardkonstruktor
// C++ program to demonstrate the use of default constructor #include using namespace std; // declare a class class Wall ( private: double length; public: // create a constructor Wall() ( // initialize private variables length = 5.5; cout << "Creating a wall." << endl; cout << "Length = " << length << endl; ) ); int main() ( // create an object Wall wall1; return 0; )
Ausgabe:
Erstellen einer Wandlänge = 5.5
Hier wird beim Erstellen des wall1-Objekts der Wall()
Konstruktor aufgerufen. Dies setzt die Längenvariable des Objekts auf 5.5
.
Hinweis: Wenn wir in unserer Klasse keinen Konstruktor definiert haben, erstellt der C ++ - Compiler automatisch einen Standardkonstruktor mit einem leeren Code und ohne Parameter.
C ++ Parametrisierter 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 using namespace std; // declare a class class Wall ( private: double length; double height; public: // create parameterized constructor Wall(double len, double hgt) ( // initialize private variables 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() << endl; return 0; )
Ausgabe:
Wandfläche 1: 90,3 Wandfläche 2: 53,55
Hier haben wir einen parametrisierten Konstruktor erstellt Wall()
, der zwei Parameter hat: double len
und double hgt
. Die in diesen Parametern enthaltenen Werte werden verwendet, um die Länge und Höhe der Elementvariablen zu initialisieren.
Wenn wir ein Objekt der Room
Klasse erstellen , übergeben wir die Werte für die Elementvariablen 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 Wandfläche mit der calculateArea()
Funktion berechnen .
C ++ - Kopierkonstruktor
Der Kopierkonstruktor in C ++ wird verwendet, um Daten eines Objekts in ein anderes zu kopieren.
Beispiel 3: C ++ - Kopierkonstruktor
#include using namespace std; // declare a class class Wall ( private: double length; double height; public: // parameterized constructor Wall(double len, double hgt) ( // initialize private variables length = len; height = hgt; ) // copy constructor with a Wall object as parameter Wall(Wall &obj) ( // initialize private variables 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); // print area of wall1 cout << "Area of Room 1: " << wall1.calculateArea() << endl; // copy contents of room1 to another object room2 Wall wall2 = wall1; // print area of wall2 cout << "Area of Room 2: " << wall2.calculateArea() << endl; return 0; )
Ausgabe
Bereich von Raum 1: 90,3 Bereich von Raum 2: 90,3
In diesem Programm haben wir einen Kopierkonstruktor verwendet, um den Inhalt eines Objekts der Wall
Klasse in ein anderes zu kopieren . Der Code des Kopierkonstruktors lautet:
Room(Room &obj) ( length = obj.length; height = obj.height; )
Beachten Sie, dass der Parameter dieses Konstruktors die Adresse eines Objekts der Wall
Klasse hat.
Wir ordnen dann die Werte der Variablen des ersten Objekts den entsprechenden Variablen des zweiten Objekts zu. So wird der Inhalt des Objekts kopiert.
In main()
erstellen wir dann zwei Objekte wall1 und wall2 und kopieren dann den Inhalt des ersten Objekts mit dem Code auf das zweite
Wall wall2 = 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.