Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen What Is a Constructor of the Class | Constructors and Destructors
C++ OOP

What Is a Constructor of the Class

Swipe um das Menü anzuzeigen

Note
Definition

Konstruktor ist eine spezielle Methode einer Klasse, die beim Erstellen eines Objekts aufgerufen wird. Damit können die Attribute mit sinnvollen Werten initialisiert werden.

Durch die Verwendung von Konstruktoren kann die Erstellung von Objekten vereinfacht werden. Ohne einen Konstruktor müssten alle Eigenschaften einzeln gesetzt werden und es könnten mehrere Methodenaufrufe erforderlich sein, um das Objekt in einen verwendbaren Zustand zu versetzen.

Der Hauptzweck eines Konstruktors ist die Initialisierung der neu erstellten Instanz. Er kann die Anfangswerte der Attribute basierend auf den an den Konstruktor übergebenen Parametern festlegen und so sicherstellen, dass das Objekt in einem gültigen Zustand startet.

Syntax des Konstruktors

Obwohl die Entwicklung eines Konstruktors auf den ersten Blick einfach erscheint, sind zahlreiche spezifische Aspekte zu beachten. Das allgemeine Vorgehen zur Erstellung ist:

student.h

student.h

12345678
class Student { public: Student() { name = 'Default'; } std::string name; };
  • Name: Konstruktor hat denselben Namen wie die Klasse selbst;
  • Rückgabetyp: Konstruktoren besitzen keinen Rückgabetyp, nicht einmal void;
  • Parameter: Konstruktoren können Parameter annehmen und können mit unterschiedlichen Parametersätzen überladen werden, um verschiedene Möglichkeiten der Initialisierung von Objekten zu ermöglichen;
  • Automatischer Aufruf: Konstruktor wird vom Compiler automatisch aufgerufen, wenn ein Objekt erstellt wird.

Standardkonstruktor

Ein Standardkonstruktor ist ein Konstruktor, der ohne Argumente aufgerufen werden kann. So werden Standardkonstruktoren definiert und verwendet:

main.cpp

main.cpp

1234567891011121314
#include <iostream> class Example { public: Example() { std::cout << "Object was created!"; } }; int main() { Example obj; }

Du kannst mit dem obigen Code experimentieren. Die Logik, die in der Example()-Methode geschrieben ist, wird jedes Mal ausgeführt, wenn eine Instanz der Klasse erstellt wird.

Note
Hinweis

Versuche, ein weiteres Objekt hinzuzufügen oder die Logik im Konstruktor zu ändern.

Wenn kein Konstruktor definiert ist, erzeugt der Compiler einen Standardkonstruktor. Dessen Verhalten hängt von den Typen der Member-Variablen ab: fundamentale Typen, standardkonstruktible Typen oder benutzerdefinierte Typen.

main.cpp

main.cpp

123456789101112
#include <iostream> class Example { public: int value; }; int main() { Example obj; // Default constructor std::cout << obj.value; }

Ein Attribut ist ein fundamentaler Datentyp. Der automatisch generierte Standardkonstruktor initialisiert Member-Variablen vom eingebauten Typ nicht. Sie haben unbestimmte Werte, wenn ein Objekt erstellt wird und diese Felder nicht explizit initialisiert werden.

Note
Hinweis

Es kann sein, dass der Compiler einen konsistenten Wert für die Variable value bereitstellt, aber der Standard schreibt dies nicht vor und es ist möglich, dass sie einen undefinierten Wert enthält.

question mark

Wann wird der Konstruktor aufgerufen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 2. Kapitel 1
some-alt