Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

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


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

  1. C#-Konstruktor
  2. Überladen des C#-Konstruktors
  3. C++-Datentypen
  4. C++-Operatoren
  5. C++-Kommentare
  6. C++-Klassenvorlagen
  7. Java-Konstruktoren
  8. Java - Konstruktoren
  9. C++-Übersicht
  10. C++ Konstanten/Literale