Kapitel 2: Spezielle Methoden

Kapitel 2: Spezielle Methoden

Die Verwendung von Methoden in C++ ist ein wichtiger Aspekt der Programmierung. In diesem Kapitel werden einige spezielle Methoden vorgestellt, die Ihnen dabei helfen, Ihren Code effizienter zu gestalten und Ihre Objekte richtig zu initialisieren.

Automatischer Aufruf bei Objektdefinition

Ein Konstruktor ist eine Methode, die automatisch aufgerufen wird, wenn Sie ein Objekt erstellen. Um einen Konstruktor zu definieren, verwenden Sie den Klassennamen als Methodennamen. Der Konstruktor darf keinen Rückgabewert haben und kann optional Parameter erwarten.

Wenn Sie keinen Konstruktor definieren, wird automatisch ein Standardkonstruktor erstellt. Der Standardkonstruktor initialisiert die Eigenschaften des Objekts mit Standardwerten.

#include <string>

class flugzeug {
public:
    flugzeug();
private:
    std::string Fluggesellschaft;
};

Die Implementation des Standardkonstruktors befindet sich in einer separaten Datei, die von der Klassendefinition getrennt ist.

#include "flugzeug.h"

flugzeug::flugzeug() {
    Fluggesellschaft = "Lufthansa";
}

Wenn Sie ein Objekt vom Typ “flugzeug” erstellen, wird automatisch der Standardkonstruktor aufgerufen. Das Objekt besitzt dann eine Eigenschaft, die auf den Wert “Lufthansa” gesetzt ist. Sie müssen sich also nicht zusätzlich um eine korrekte Initialisierung kümmern.

Sie können auch Konstruktoren mit Parametern definieren, um spezifische Eigenschaften zu initialisieren.

#include <string>

class flugzeug {
public:
    flugzeug();
    flugzeug(std::string fluggesellschaft);
private:
    std::string Fluggesellschaft;
};

Die Definition der Konstruktoren befindet sich in einer separaten Datei.

#include "flugzeug.h"

flugzeug::flugzeug() {
    Fluggesellschaft = "Lufthansa";
}

flugzeug::flugzeug(std::string fluggesellschaft) {
    Fluggesellschaft = fluggesellschaft;
}

Sie können einen Konstruktor aufrufen, der Parameter erwartet, indem Sie die Parameter in Klammern nach dem Objektnamen angeben.

#include "flugzeug.h"

flugzeug f;
flugzeug f2("British Airways");

Um Konstruktoren mit Standardwerten aufzurufen, können Sie leere Klammern verwenden.

#include "flugzeug.h"

flugzeug f;
flugzeug f2();

Es gibt jedoch einen Unterschied zwischen den beiden Code-Zeilen. Beachten Sie, dass Sie leere Klammern nur dann verwenden können, wenn die Klasse einen expliziten Standardkonstruktor definiert hat.

LESEN  Die Bluetooth DJ Nadel revolutioniert das Timecode-DJing

Die Verwendung von Initialisierungslisten ist eine optimierte Möglichkeit, Eigenschaften in Konstruktoren zu initialisieren. Initialisierungslisten sind schneller als die Zuweisung von Werten innerhalb des Konstruktorrumpfs.

#include "flugzeug.h"

flugzeug::flugzeug() : Fluggesellschaft("Lufthansa") { }

Eine Initialisierungsliste wird nach dem Methodenkopf mit einem Doppelpunkt eingeführt. Die zu initialisierenden Eigenschaften werden in Klammern angegeben.

Sie können Initialisierungslisten nicht nur für Standardkonstruktoren verwenden, sondern auch für Konstruktoren mit Parametern. Im obigen Beispiel wird der Konstruktor mit einem Parameter aufgerufen, der als Wert für die Eigenschaft “Fluggesellschaft” verwendet wird.

Verwenden Sie Initialisierungslisten, wann immer möglich. Es gibt jedoch Situationen, in denen Sie direkt innerhalb des Konstruktors eine Eigenschaft initialisieren müssen. In diesem Fall führen Sie die Berechnung innerhalb des Konstruktors aus und weisen das Ergebnis der entsprechenden Eigenschaft zu.

Es ist wichtig zu beachten, dass bei einem Konstruktoraufruf zuerst die Initialisierungsliste ausgeführt wird und dann der Methodenrumpf. Sie können also innerhalb des Konstruktors bereits mit Eigenschaften arbeiten, die über die Initialisierungsliste gesetzt wurden.