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

C++-Konstruktoren verstehen: Standard-, Parameter- und Kopierkonstruktor erklärt

C++-Konstruktoren verstehen

Dieses Tutorial taucht in C++-Konstruktoren ein – was sie sind, warum sie wichtig sind, und wie man Standard-, Parameter- und Kopierkonstruktoren mit klaren Beispielen implementiert.

Ein Konstruktor ist eine spezielle Mitgliedsfunktion, die automatisch ausgeführt wird, wenn ein Objekt instanziiert wird. In C++ teilt der Konstruktor seinen Namen mit der Klasse und spezifiziert keinen Rückgabetyp.

class Wall
{
public:
    // Konstruktor
    Wall()
    {
        // Initialisierungscode
    }
};

Der Konstruktor muss:


Standardkonstruktor

Ein Konstruktor ohne Parameter wird als Standardkonstruktor bezeichnet. Das obige Wall()-Beispiel ist einer.


Beispiel 1: Standardkonstruktor

// Demonstration eines Standardkonstruktors
#include <iostream>
using namespace std;

class Wall
{
private:
    double length;

public:
    // Standardkonstruktor
    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

Wenn wall1 instanziiert wird, setzt der Standardkonstruktor length auf 5.5 und gibt die Meldungen aus.

Hinweis: Wenn einer Klasse ein expliziter Konstruktor fehlt, generiert der Compiler automatisch einen Standardkonstruktor, der nichts tut.


Parameterisierter Konstruktor

Parameterisierte Konstruktoren empfangen Argumente, um Mitgliedsdaten bei der Objekterstellung zu initialisieren. Sie sind der bevorzugte Weg, um den Zustand eines Objekts einzurichten.


Beispiel 2: Parameterisierter Konstruktor

// Flächenberechnung einer Wand mit parameterisiertem Konstruktor
#include <iostream>
using namespace std;

class Wall
{
private:
    double length;
    double height;

public:
    // Parameterisierter Konstruktor
    Wall(double len, double hgt)
    {
        length = len;
        height = hgt;
    }

    double calculateArea()
    {
        return length * height;
    }
};

int main()
{
    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

Der Konstruktor weist die übergebenen Werte length und height zu, was calculateArea() ermöglicht, die Wandfläche zu berechnen.


Kopierkonstruktor

Ein Kopierkonstruktor erstellt ein neues Objekt als exakte Kopie eines bestehenden. Er wird aufgerufen, wenn ein Objekt von einem anderen desselben Typs initialisiert wird.


Beispiel 3: Kopierkonstruktor

#include <iostream>
using namespace std;

class Wall
{
private:
    double length;
    double height;

public:
    // Parameterisierter Konstruktor
    Wall(double len, double hgt)
    {
        length = len;
        height = hgt;
    }

    // Kopierkonstruktor
    Wall(Wall &obj)
    {
        length = obj.length;
        height = obj.height;
    }

    double calculateArea()
    {
        return length * height;
    }
};

int main()
{
    Wall wall1(10.5, 8.6);
    Wall wall2 = wall1; // Ruft Kopierkonstruktor auf
    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

Der Kopierkonstruktor kopiert length und height von wall1 zu wall2, sodass beide Objekte identischen Zustand haben.

Hinweis: Konstruktoren initialisieren primär Objekte, ermöglichen aber auch benutzerdefinierte Logik während der Objekterstellung.

C Sprache

  1. C# Konstruktoren: Typen, Beispiele und fortgeschrittene Muster
  2. Konstruktorüberladung in C# meistern
  3. C++-Datentypen verstehen: Grundlagen, Modifizierer und Best Practices
  4. C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
  5. C++-Kommentare: Best Practices für lesbaren, wartbaren Code
  6. C++ Klassentemplates meistern: Ein praktischer Leitfaden
  7. Java Konstruktoren meistern: Typen, Verwendung und praktische Beispiele
  8. Java Konstruktoren verstehen: Initialisierung und Best Practices
  9. C++ Programmiersprache: Überblick & Kernfeatures
  10. C++ Konstanten & Literale: Typen, Syntax & Best Practices