Standardkonstruktor

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Konstruktoren - Index

An den Standardkonstruktor für class X werden keine Argumente übergeben; er hat normalerweise die Form X::X(). Wenn kein benutzerdefinierter Konstruktor für eine Klasse existiert, erzeugt der Compiler einen Standardkonstruktor. Bei der Deklaration eines Objekts innerhalb einer Klasse, wie z.B. X x, generiert der Standardkonstruktor das Objekt x.

Wie alle Funktionen können Konstruktoren Parameter mit Standardargumenten haben. Beispielsweise nimmt der Konstruktor:



 X::X(int, int = 0)



ein oder zwei Argumente entgegen. Falls das zweite Argument beim Aufruf fehlt, wird 0 int eingesetzt. Ähnlich nimmt der Konstruktor



 X::X(int = 5, int = 6)



ein, zwei oder auch kein Argument entgegen. Der Standardkonstruktor X::X() akzeptiert kein Argument und darf nicht mit beispielsweise X::X(int = 0) verwechselt werden, der ein Argument oder - als Standardkonstruktor - kein Argument akzeptiert.

Vermeiden Sie daher bei der Verwendung von Konstruktoren zweideutige Konstruktionen. Im folgenden Fall können die beiden Standardkonstruktoren nicht klar auseinander gehalten werden:



 class X
 {
 public:
    X();
    X(int i = 0);
 };
 int main()
 {
    X one(10);  // OK; verwendet X::X(int)
    X two;      // Fehler; unklar, ob der Aufruf von X::X() oder
                // X::X(int = 0) erfolgen soll.
    return 0;
 }



Siehe auch